You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by gi...@apache.org on 2022/02/06 14:31:13 UTC

[hop-website] branch asf-site updated: Website updated to 4e5236ebd

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/hop-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 7d05f90  Website updated to 4e5236ebd
7d05f90 is described below

commit 7d05f9012f687d2ae02921424378971d04e0d319
Author: jenkins <bu...@apache.org>
AuthorDate: Sun Feb 6 14:31:06 2022 +0000

    Website updated to 4e5236ebd
---
 404.html                                           |    2 +-
 404/index.html                                     |   30 +-
 _/css/site-14ef316f35.css                          |    2 +
 _/css/site-a5c153e5c5.css                          |    2 -
 _/data/rev-manifest.json                           |   16 +-
 _/font/open-sans-latin-ext-300-italic.woff         |  Bin 0 -> 23520 bytes
 _/font/open-sans-latin-ext-300-italic.woff2        |  Bin 0 -> 18500 bytes
 _/font/open-sans-latin-ext-300.woff                |  Bin 0 -> 25004 bytes
 _/font/open-sans-latin-ext-300.woff2               |  Bin 0 -> 19948 bytes
 _/font/open-sans-latin-ext-700-italic.woff         |  Bin 0 -> 23408 bytes
 _/font/open-sans-latin-ext-700-italic.woff2        |  Bin 0 -> 18456 bytes
 _/font/open-sans-latin-ext-700.woff                |  Bin 0 -> 25196 bytes
 _/font/open-sans-latin-ext-700.woff2               |  Bin 0 -> 20108 bytes
 _/font/open-sans-latin-ext-800-italic.woff         |  Bin 0 -> 23868 bytes
 _/font/open-sans-latin-ext-800-italic.woff2        |  Bin 0 -> 18780 bytes
 _/font/open-sans-latin-ext-800.woff                |  Bin 0 -> 25684 bytes
 _/font/open-sans-latin-ext-800.woff2               |  Bin 0 -> 20380 bytes
 _/img/{back.svg => back-0b77317ba4.svg}            |    0
 _/img/{caret.svg => caret-fe375177d0.svg}          |    0
 _/img/{chevron.svg => chevron-0d3baf009c.svg}      |    0
 _/img/{close.svg => close-71b79b2fc0.svg}          |    0
 _/img/{home.svg => home-36f9a3c81a.svg}            |    0
 _/img/{home-o.svg => home-o-5f818ccd11.svg}        |    0
 _/img/{hop-logo.svg => hop-logo-90b6b4a5e5.svg}    |    0
 .../{logo-light.svg => logo-light-a140b11621.svg}  |    0
 _/img/{menu.svg => menu-16e95092aa.svg}            |    0
 _/img/{search.svg => search-46756b38c9.svg}        |    0
 _/js/site-2a38a705e3.js                            |    6 +
 _/js/site-48c7e4fe4a.js                            |    5 -
 _/js/vendor/highlight-41b831b4c4.js                |    1 -
 _/js/vendor/highlight-a243a7d07e.js                |    1 +
 _/rev-manifest                                     |   17 +
 blog/2020/02/roundup-2020-02/index.html            |   51 +-
 blog/2020/03/roundup-2020-03/index.html            |   51 +-
 blog/2020/04/release-preview-0.1/index.html        |   51 +-
 blog/2020/04/roundup-2020-04/index.html            |   51 +-
 blog/2020/05/preview-release-0.21/index.html       |   51 +-
 blog/2020/05/roundup-2020-05/index.html            |   51 +-
 blog/2020/06/roundup-2020-06/index.html            |   51 +-
 blog/2020/07/preview-release-0.30/index.html       |   51 +-
 blog/2020/08/roundup-2020-08/index.html            |   51 +-
 blog/2020/10/hop-joins-the-asf/index.html          |   51 +-
 blog/2020/11/roundup-2020-11/index.html            |   51 +-
 blog/2020/12/roundup-2020-12/index.html            |   51 +-
 blog/2021/01/release-0.60/index.html               |   51 +-
 blog/2021/01/roundup-2021-01/index.html            |   51 +-
 blog/2021/02/roundup-2021-02/index.html            |   53 +-
 blog/2021/03/roundup-2021-03/index.html            |   51 +-
 blog/2021/04/release-0.70/index.html               |   51 +-
 blog/2021/04/roundup-2021-04/index.html            |   51 +-
 blog/2021/05/roundup-2021-05/index.html            |   51 +-
 blog/2021/06/roundup-2021-06/index.html            |   51 +-
 blog/2021/07/roundup-2021-07/index.html            |   51 +-
 blog/2021/08/hop-0.99/index.html                   |   51 +-
 blog/2021/09/roundup-2021-08/index.html            |   51 +-
 blog/2021/10/hop-1.0.0/index.html                  |   51 +-
 blog/2021/12/roundup-2021-11/index.html            |   51 +-
 blog/2022/01/hop-1.1.0/index.html                  |   51 +-
 blog/2022/01/hop-graduation/index.html             |   51 +-
 blog/2022/01/roundup-2021-12/index.html            |   51 +-
 blog/2022/02/roundup-2022-02/index.html            |   51 +-
 blog/index.html                                    |   30 +-
 blog/page/10/index.html                            |   30 +-
 blog/page/2/index.html                             |   30 +-
 blog/page/3/index.html                             |   30 +-
 blog/page/4/index.html                             |   30 +-
 blog/page/5/index.html                             |   30 +-
 blog/page/6/index.html                             |   30 +-
 blog/page/7/index.html                             |   30 +-
 blog/page/8/index.html                             |   30 +-
 blog/page/9/index.html                             |   30 +-
 categories/1.0/index.html                          |   37 +-
 categories/1.1/index.html                          |   37 +-
 categories/ASF/index.html                          |   37 +-
 categories/Announcement/index.html                 |   37 +-
 categories/Apache-Hop-Incubating/index.html        |   37 +-
 categories/Apache-Hop/index.html                   |   37 +-
 categories/Graduation/index.html                   |   37 +-
 categories/Pre-Releae/index.html                   |   37 +-
 categories/Pre-Release/index.html                  |   37 +-
 categories/Project-Hop/index.html                  |   37 +-
 categories/Release/index.html                      |   37 +-
 categories/Releases/index.html                     |   37 +-
 categories/Roundup/index.html                      |   37 +-
 community/commercial/index.html                    |   37 +-
 community/contributing/index.html                  |   37 +-
 .../code-contribution-guide/index.html             |   44 +-
 .../code-review-guide/index.html                   |   44 +-
 .../documentation-contribution-guide/index.html    |   44 +-
 .../contribution-guides/jira-guide/index.html      |   44 +-
 .../release-contribution-guide/index.html          |   44 +-
 .../translation-contribution-guide/index.html      |   46 +-
 .../website-contribution-guide/index.html          |   44 +-
 community/ethos/index.html                         |   37 +-
 community/events/index.html                        |   37 +-
 community/incubator/index.html                     |   37 +-
 community/index.html                               |   30 +-
 community/mailing-list/index.html                  |   37 +-
 community/sources/index.html                       |   37 +-
 community/support/index.html                       |   37 +-
 community/team/index.html                          |   37 +-
 community/tools/index.html                         |   37 +-
 cookie-info/index.html                             |   30 +-
 .../latest/apache-release/checking-a-release.html  |    4 +-
 .../latest/apache-release/creating-a-release.html  |    4 +-
 dev-manual/latest/apache-release/index.html        |    2 +-
 .../latest/apache-release/promoting-a-release.html |    4 +-
 dev-manual/latest/getting-started.html             |    2 +-
 dev-manual/latest/hopweb/developer-guide.html      |    2 +-
 dev-manual/latest/hopweb/hopweb-antipatterns.html  |    4 +-
 dev-manual/latest/hopweb/index.html                |    4 +-
 dev-manual/latest/index.html                       |    2 +-
 dev-manual/latest/integration-testing.html         |    4 +-
 dev-manual/latest/internationalisation.html        |    8 +-
 dev-manual/latest/metadata-plugins.html            |    2 +-
 dev-manual/latest/plugin-development.html          |    2 +-
 dev-manual/latest/plugin-samples.html              |    2 +-
 dev-manual/latest/porting-kettle-plugins.html      |    8 +-
 dev-manual/latest/sdk/hop-sdk.html                 |    6 +-
 dev-manual/latest/sdk/index.html                   |    2 +-
 dev-manual/latest/setup-dev-environment.html       |    6 +-
 .../latest/snippets/hop-license-header-file.html   |    2 +-
 dev-manual/latest/start-your-own-plugin.html       |    4 +-
 dev-manual/latest/svg-files.html                   |    2 +-
 docs/architecture/index.html                       |   37 +-
 docs/index.html                                    |   30 +-
 docs/roadmap/index.html                            |   37 +-
 download/index.html                                |   30 +-
 index.html                                         |   23 +-
 .../beam-getting-started-beam-file-definition.png  |  Bin
 .../beam-getting-started-flushes-metric.png        |  Bin
 ...etting-started-input-transforms-on-dataflow.png |  Bin
 .../{1.1.0 => 0}/_images/best-practices-naming.png |  Bin
 .../{1.1.0 => 0}/_images/concepts/environments.png |  Bin
 manual/{1.1.0 => 0}/_images/concepts/pipeline.png  |  Bin
 manual/{1.1.0 => 0}/_images/concepts/workflow.png  |  Bin
 .../_images/copy-as-pipeline-action.png            |  Bin
 .../_images/error-handling-context-dialog.png      |  Bin
 .../{1.1.0 => 0}/_images/error-handling-dialog.png |  Bin
 .../_images/error-handling-hop-option.png          |  Bin
 manual/{1.1.0 => 0}/_images/error-handling-hop.png |  Bin
 .../{1.1.0 => 0}/_images/error-handling-output.png |  Bin
 manual/{1.1.0 => 0}/_images/generic_connection.png |  Bin
 ...getting-started-input-process-output-sample.png |  Bin
 .../getting-started-add-transform.png              |  Bin
 .../getting-started-add-two-transforms.png         |  Bin
 .../getting-started-click-anywhere.png             |  Bin
 .../getting-started/getting-started-create-hop.png |  Bin
 .../getting-started-new-workflow-abort.png         |  Bin
 .../getting-started-new-workflow-actions.png       |  Bin
 ...etting-started-new-workflow-pipeline-action.png |  Bin
 .../getting-started-new-workflow.png               |  Bin
 .../getting-started-pipeline-toolbar.png           |  Bin
 .../getting-started-run-workflow-config-dialog.png |  Bin
 .../getting-started-run-workflow-dialog.png        |  Bin
 .../getting-started-run-workflow-with-config.png   |  Bin
 .../gs-hop-gui-create-pipeline-1.png               |  Bin
 .../gs-hop-gui-create-pipeline-2.png               |  Bin
 .../gs-hop-gui-create-pipeline-3.png               |  Bin
 .../gs-hop-gui-create-pipeline-4.png               |  Bin
 .../gs-hop-gui-create-pipeline-5.png               |  Bin
 .../gs-hop-gui-create-pipeline-6.png               |  Bin
 .../gs-hop-gui-create-pipeline-7.png               |  Bin
 .../gs-hop-gui-create-pipeline-8.png               |  Bin
 .../gs-hop-gui-create-pipeline-9.png               |  Bin
 ...-hop-gui-create-pipeline-add-two-transforms.png |  Bin
 .../gs-hop-gui-create-pipeline-create-hop.png      |  Bin
 .../gs-hop-gui-create-workflow-1.png               |  Bin
 .../gs-hop-gui-create-workflow-2.png               |  Bin
 .../gs-hop-gui-create-workflow-3.png               |  Bin
 .../gs-hop-gui-create-workflow-4.png               |  Bin
 .../gs-hop-gui-create-workflow-5.png               |  Bin
 .../gs-hop-gui-create-workflow-6.png               |  Bin
 .../gs-hop-gui-create-workflow-7.png               |  Bin
 ...hop-gui-create-workflow-add-pipeline-action.png |  Bin
 .../gs-hop-gui-create-workflow-run.png             |  Bin
 .../gs-hop-gui-create-workflow-save.png            |  Bin
 .../getting-started/gs-hop-gui-overview-1.png      |  Bin
 .../getting-started/gs-hop-gui-overview-2.png      |  Bin
 .../getting-started/gs-hop-gui-run-pipeline-1.png  |  Bin
 .../getting-started/gs-hop-gui-run-pipeline-2.png  |  Bin
 .../getting-started/gs-hop-gui-run-pipeline-3.png  |  Bin
 .../getting-started/gs-hop-gui-run-pipeline-4.png  |  Bin
 .../getting-started/gs-hop-gui-run-pipeline-5.png  |  Bin
 .../getting-started/gs-hop-gui-run-pipeline-6.png  |  Bin
 .../getting-started/gs-hop-gui-run-pipeline-7.png  |  Bin
 .../getting-started/icons/Antu_edit-redo.svg       |    0
 .../getting-started/icons/Antu_edit-undo.svg       |    0
 .../_images/getting-started/icons/HOP.svg          |    0
 .../_images/getting-started/icons/align-bottom.svg |    0
 .../_images/getting-started/icons/align-left.svg   |    0
 .../_images/getting-started/icons/align-right.svg  |    0
 .../_images/getting-started/icons/align-top.svg    |    0
 .../_images/getting-started/icons/back.svg         |    0
 .../_images/getting-started/icons/cleanup.svg      |    0
 .../_images/getting-started/icons/close.svg        |    0
 .../_images/getting-started/icons/debug.svg        |    0
 .../icons/distribute-horizontally.svg              |    0
 .../icons/distribute-vertically.svg                |    0
 .../_images/getting-started/icons/job.svg          |    0
 .../_images/getting-started/icons/pause.svg        |    0
 .../_images/getting-started/icons/print.png        |  Bin
 .../_images/getting-started/icons/run.svg          |    0
 .../_images/getting-started/icons/run_option.svg   |    0
 .../_images/getting-started/icons/show-all.svg     |    0
 .../getting-started/icons/show-selected.svg        |    0
 .../_images/getting-started/icons/snap-to-grid.svg |    0
 .../_images/getting-started/icons/stop.svg         |    0
 .../_images/getting-started/icons/trans.svg        |    0
 .../_images/getting-started/icons/view-as-xml.svg  |    0
 .../_images/getting-started/icons/view.svg         |    0
 .../environment/create-environment-dialogue.png    |  Bin
 .../hop-gui/environment/create-project-dialog.png  |  Bin
 .../hop-gui/environment/edit-environment-menu.png  |  Bin
 .../hop-gui/environment/environment-add.svg        |    0
 .../hop-gui/environment/environment-delete.svg     |    0
 .../hop-gui/environment/environment-edit.svg       |    0
 .../hop-gui/environment/environment-files.png      |  Bin
 .../hop-gui/environment/environment-variables.png  |  Bin
 .../hop-gui/environment/new-environment-dialog.png |  Bin
 .../hop-gui/environment/new-environment.png        |  Bin
 .../_images/hop-gui/environment/project-add.svg    |    0
 .../_images/hop-gui/environment/project-delete.svg |    0
 .../_images/hop-gui/environment/project-edit.svg   |    0
 .../environment/switch-environment-list.png        |  Bin
 .../hop-gui/environment/switch-environment.png     |  Bin
 .../hop-gui/environment/switch-project-list.png    |  Bin
 .../{1.1.0 => 0}/_images/hop-gui/file-dialog.png   |  Bin
 .../_images/hop-gui/git-visual-diff.png            |  Bin
 .../_images/hop-gui/hop-gui-git-toolbar.png        |  Bin
 .../_images/hop-gui/hop-gui-no-git.png             |  Bin
 .../{1.1.0 => 0}/_images/hop-gui/new-work-item.png |  Bin
 manual/{1.1.0 => 0}/_images/hop-gui/new.svg        |    0
 .../_images/hop-gui/pipeline/basic-pipeline.png    |  Bin
 .../_images/hop-gui/pipeline/debug-pipeline.png    |  Bin
 .../_images/hop-gui/pipeline/executed-pipeline.png |  Bin
 .../_images/hop-gui/pipeline/failed-pipeline.png   |  Bin
 .../_images/hop-gui/pipeline/hop-type.png          |  Bin
 .../_images/hop-gui/pipeline/logging-pipeline.png  |  Bin
 .../hop-gui/pipeline/monitoring-pipeline.png       |  Bin
 .../_images/hop-gui/pipeline/new-pipeline.png      |  Bin
 .../hop-gui/pipeline/parameters-pipeline.png       |  Bin
 .../hop-gui/pipeline/partitionining-buffers.png    |  Bin
 .../pipeline/partitionining-partition-schema.png   |  Bin
 .../pipeline/partitionining-partitioned.png        |  Bin
 .../hop-gui/pipeline/partitionining-preview-2.png  |  Bin
 .../pipeline/partitionining-preview-table.png      |  Bin
 .../hop-gui/pipeline/partitionining-preview.png    |  Bin
 .../pipeline/partitionining-swimlanes-1.png        |  Bin
 .../pipeline/partitionining-swimlanes-2.png        |  Bin
 .../hop-gui/pipeline/partitionining-table.png      |  Bin
 .../hop-gui/pipeline/preview-menu-pipeline.PNG     |  Bin
 .../_images/hop-gui/pipeline/preview-pipeline.png  |  Bin
 .../hop-gui/pipeline/properties-pipeline.png       |  Bin
 .../pipeline/run-configuration-pipeline.png        |  Bin
 .../_images/hop-gui/pipeline/save-pipeline.png     |  Bin
 .../_images/hop-gui/pipeline/simple-pipeline.png   |  Bin
 .../pipeline/transform-metrics-pipeline.png        |  Bin
 .../_images/hop-gui/pipeline/transforms.png        |  Bin
 .../{1.1.0 => 0}/_images/hop-gui/popup-action.png  |  Bin
 .../_images/hop-gui/popup-collapsed.png            |  Bin
 .../_images/hop-gui/popup-create-item.png          |  Bin
 .../_images/hop-gui/popup-description.png          |  Bin
 .../_images/hop-gui/popup-hop-pipeline.png         |  Bin
 .../_images/hop-gui/popup-hop-workflow.png         |  Bin
 .../hop-gui/popup-no-categories-no-fixed-width.png |  Bin
 .../_images/hop-gui/popup-pipeline.png             |  Bin
 .../{1.1.0 => 0}/_images/hop-gui/popup-toolbar.png |  Bin
 .../_images/hop-gui/popup-transform.png            |  Bin
 .../_images/hop-gui/popup-workflow.png             |  Bin
 .../_images/hop-gui/workflow/basic-workflow.png    |  Bin
 .../hop-gui/workflow/new-run-configuration.png     |  Bin
 .../hop-gui/workflow/parameters-properties.png     |  Bin
 .../hop-gui/workflow/settings-properties.png       |  Bin
 .../_images/hop-gui/workflow/simple-workflow.png   |  Bin
 .../_images/hop-gui/workflow/workflow-action.png   |  Bin
 .../hop-gui/workflow/workflow-properties.png       |  Bin
 .../workflow/workflow-run-configuration.png        |  Bin
 .../_images/hop-run/hop-run-options.png            |  Bin
 .../_images/hop-server/hop-server-options.png      |  Bin
 .../_images/hop-server/hop-server-status.png       |  Bin
 .../_images/hop-server/web-service-example.png     |  Bin
 .../hop-server/web-service-pipeline-example.png    |  Bin
 manual/{1.1.0 => 0}/_images/hop-web.png            |  Bin
 .../web-services-in-docker/json-output.png         |  Bin
 .../web-services-in-docker/metadata.png            |  Bin
 .../web-services-in-docker/pipeline.png            |  Bin
 .../web-services-in-docker/result.png              |  Bin
 .../simplified-architecture.png                    |  Bin
 .../{1.1.0 => 0}/_images/icons/Cassandra_logo.svg  |    0
 .../_images/icons/MongoDB_Leaf_FullColor_RGB.svg   |    0
 manual/{1.1.0 => 0}/_images/icons/NEO4J.svg        |    0
 .../{1.1.0 => 0}/_images/icons/Test_tube_icon.svg  |    0
 manual/{1.1.0 => 0}/_images/icons/add.svg          |    0
 manual/{1.1.0 => 0}/_images/icons/arrow-right.svg  |    0
 manual/{1.1.0 => 0}/_images/icons/beam-logo.svg    |    0
 manual/{1.1.0 => 0}/_images/icons/bookmark-add.svg |    0
 manual/{1.1.0 => 0}/_images/icons/bookmark.svg     |    0
 manual/{1.1.0 => 0}/_images/icons/data_orch.svg    |    0
 manual/{1.1.0 => 0}/_images/icons/database.svg     |    0
 manual/{1.1.0 => 0}/_images/icons/dataset.svg      |    0
 manual/{1.1.0 => 0}/_images/icons/delete.svg       |    0
 manual/{1.1.0 => 0}/_images/icons/developer.svg    |    0
 manual/{1.1.0 => 0}/_images/icons/folder-add.svg   |    0
 manual/{1.1.0 => 0}/_images/icons/folder.svg       |    0
 manual/{1.1.0 => 0}/_images/icons/git-add.svg      |    0
 manual/{1.1.0 => 0}/_images/icons/git-commit.svg   |    0
 manual/{1.1.0 => 0}/_images/icons/git-info.svg     |    0
 manual/{1.1.0 => 0}/_images/icons/git-revert.svg   |    0
 manual/{1.1.0 => 0}/_images/icons/home.svg         |    0
 manual/{1.1.0 => 0}/_images/icons/info.svg         |    0
 manual/{1.1.0 => 0}/_images/icons/logo_icon.svg    |    0
 manual/{1.1.0 => 0}/_images/icons/metadata.svg     |    0
 .../{1.1.0 => 0}/_images/icons/navigate-back.svg   |    0
 .../_images/icons/navigate-forward.svg             |    0
 manual/{1.1.0 => 0}/_images/icons/navigate-up.svg  |    0
 manual/{1.1.0 => 0}/_images/icons/neo4j_logo.svg   |    0
 .../_images/icons/partition_schema.svg             |    0
 manual/{1.1.0 => 0}/_images/icons/pipeline-log.svg |    0
 manual/{1.1.0 => 0}/_images/icons/pipeline.svg     |    0
 .../_images/icons/pipeline_run_config.svg          |    0
 manual/{1.1.0 => 0}/_images/icons/play.svg         |    0
 manual/{1.1.0 => 0}/_images/icons/plugin.svg       |    0
 manual/{1.1.0 => 0}/_images/icons/preview.svg      |    0
 manual/{1.1.0 => 0}/_images/icons/probe.svg        |    0
 manual/{1.1.0 => 0}/_images/icons/project.svg      |    0
 manual/{1.1.0 => 0}/_images/icons/pull.svg         |    0
 manual/{1.1.0 => 0}/_images/icons/push.svg         |    0
 manual/{1.1.0 => 0}/_images/icons/refresh.svg      |    0
 manual/{1.1.0 => 0}/_images/icons/rename.svg       |    0
 manual/{1.1.0 => 0}/_images/icons/search.svg       |    0
 manual/{1.1.0 => 0}/_images/icons/server.svg       |    0
 manual/{1.1.0 => 0}/_images/icons/splunk.svg       |    0
 manual/{1.1.0 => 0}/_images/icons/test.svg         |    0
 manual/{1.1.0 => 0}/_images/icons/workflow-log.svg |    0
 manual/{1.1.0 => 0}/_images/icons/workflow.svg     |    0
 .../_images/icons/workflow_run_config.svg          |    0
 .../logging/custom-action-logging-level.png        |  Bin
 .../_images/logging/custom-logging-actions.png     |  Bin
 .../logging/custom-transform-logging-level.png     |  Bin
 .../mongodb-input-screenshot-connection-tab.png    |  Bin
 .../mongodb-input-screenshot-fields-tab.png        |  Bin
 .../_images/mongodb-input-screenshot-input-tab.png |  Bin
 .../_images/mongodb-input-screenshot-query-tab.png |  Bin
 .../mongodb-output-screenshot-connection-tab.png   |  Bin
 .../mongodb-output-screenshot-fields-tab.png       |  Bin
 .../mongodb-output-screenshot-indexes-tab.png      |  Bin
 .../mongodb-output-screenshot-output-tab.png       |  Bin
 .../pipeline-unit-testing-bypass-transform.png     |  Bin
 .../pipeline-unit-testing-create-data-set.png      |  Bin
 .../pipeline-unit-testing-create-unit-test.png     |  Bin
 .../pipeline-unit-testing-data-sets-enabled.png    |  Bin
 .../_images/pipeline-unit-testing-data-sets.png    |  Bin
 .../_images/pipeline-unit-testing-pipeline.png     |  Bin
 ...peline-unit-testing-run-unit-tests-pipeline.png |  Bin
 .../_images/pipeline-unit-testing-test-failed.png  |  Bin
 .../_images/pipeline-unit-testing-workflow.png     |  Bin
 .../run-configuration/configuration-selection.png  |  Bin
 .../_images/system-properties-menu.png             |  Bin
 .../tech/neo4j/beers-wikipedia-graph-workflow.png  |  Bin
 .../neo4j/cleanup-remove-everything-workflow.png   |  Bin
 .../neo4j/data-loading-graph-output-transform.png  |  Bin
 .../neo4j-cypher-complex-returns-pipeline.png      |  Bin
 ...neo4j-cypher-unwind-simple-collect-into-map.png |  Bin
 .../tech/neo4j/neo4j-cypher-unwind-simple.png      |  Bin
 .../neo4j/neo4j-output-parallel-load-pipeline.png  |  Bin
 .../neo4j/neo4j-output-parallel-load-transform.png |  Bin
 manual/{1.1.0 => 0}/_images/test_image.jpg         |  Bin
 .../_images/transforms/javascript-dialog.png       |  Bin
 .../_images/transforms/javascript-functions.png    |  Bin
 .../transforms/javascript-script-right-click.png   |  Bin
 manual/{1.1.0 => 0}/_images/variable-indicator.png |  Bin
 manual/0/best-practices/index.html                 |   19 +
 manual/0/concepts.html                             |   19 +
 manual/0/database/databases.html                   |   19 +
 manual/0/database/databases/as400.html             |   19 +
 manual/0/database/databases/cache.html             |   19 +
 manual/0/database/databases/clickhouse.html        |   19 +
 manual/0/database/databases/db2.html               |   19 +
 manual/0/database/databases/derby.html             |   19 +
 manual/0/database/databases/doris.html             |   19 +
 manual/0/database/databases/exasol.html            |   19 +
 manual/0/database/databases/firebird.html          |   19 +
 manual/0/database/databases/googlebigquery.html    |   19 +
 manual/0/database/databases/greenplum.html         |   19 +
 manual/0/database/databases/h2.html                |   19 +
 manual/0/database/databases/hypersonic.html        |   19 +
 manual/0/database/databases/infinidb.html          |   19 +
 manual/0/database/databases/infobright.html        |   19 +
 manual/0/database/databases/informix.html          |   19 +
 manual/0/database/databases/ingres.html            |   19 +
 manual/0/database/databases/interbase.html         |   19 +
 manual/0/database/databases/kingbasees.html        |   19 +
 manual/0/database/databases/mariadb.html           |   19 +
 manual/0/database/databases/monetdb.html           |   19 +
 manual/0/database/databases/mssql.html             |   19 +
 manual/0/database/databases/mssqlnative.html       |   19 +
 manual/0/database/databases/mysql.html             |   19 +
 manual/0/database/databases/netezza.html           |   19 +
 manual/0/database/databases/oracle.html            |   19 +
 manual/0/database/databases/oraclerdb.html         |   19 +
 manual/0/database/databases/postgresql.html        |   19 +
 manual/0/database/databases/redshift.html          |   19 +
 manual/0/database/databases/sapdb.html             |   19 +
 manual/0/database/databases/snowflake.html         |   19 +
 manual/0/database/databases/sqlbase.html           |   19 +
 manual/0/database/databases/sqlite.html            |   19 +
 manual/0/database/databases/sybase.html            |   19 +
 manual/0/database/databases/sybaseiq.html          |   19 +
 manual/0/database/databases/teradata.html          |   19 +
 manual/0/database/databases/universe.html          |   19 +
 manual/0/database/databases/vectorwise.html        |   19 +
 manual/0/database/databases/vertica.html           |   19 +
 manual/0/faq/faq.html                              |   19 +
 manual/0/getting-started/hop-concepts.html         |   19 +
 manual/0/getting-started/hop-download-install.html |   19 +
 manual/0/getting-started/hop-gui-pipelines.html    |   19 +
 manual/0/getting-started/hop-gui-workflows.html    |   19 +
 manual/0/getting-started/hop-gui.html              |   19 +
 manual/0/getting-started/hop-next-steps.html       |   19 +
 manual/0/getting-started/hop-tools.html            |   19 +
 manual/0/getting-started/hop-what-is-hop.html      |   19 +
 manual/0/getting-started/index.html                |   19 +
 manual/0/hop-gui/file-dialog.html                  |   19 +
 manual/0/hop-gui/hop-gui-git.html                  |   19 +
 manual/0/hop-gui/hop-gui-popup-dialog.html         |   19 +
 manual/0/hop-gui/hop-web.html                      |   23 +
 manual/0/hop-gui/index.html                        |   19 +
 .../0/hop-gui/perspective-data-orchestration.html  |   19 +
 manual/0/hop-gui/perspective-file-explorer.html    |   19 +
 manual/0/hop-gui/perspective-metadata.html         |   19 +
 manual/0/hop-gui/perspective-neo4j.html            |   19 +
 manual/0/hop-gui/perspective-plugin.html           |   19 +
 manual/0/hop-gui/perspective-search.html           |   19 +
 manual/0/hop-gui/perspectives.html                 |   19 +
 manual/0/hop-gui/shortcuts.html                    |   19 +
 manual/0/hop-run/index.html                        |   38 +
 manual/0/hop-search/index.html                     |   19 +
 manual/0/hop-server/async-web-service.html         |   29 +
 manual/0/hop-server/index.html                     |  192 +
 manual/0/hop-server/rest-api.html                  |  145 +
 manual/0/hop-server/web-service.html               |   27 +
 .../hop-tools/hop-conf/hop-conf-cloud-aws-s3.html  |   19 +
 .../hop-conf-cloud-azure-blob-storage.html         |   25 +
 .../hop-conf-cloud-google-cloud-storage.html       |   20 +
 .../hop-conf/hop-conf-cloud-google-drive.html      |   23 +
 manual/0/hop-tools/hop-conf/hop-conf-projects.html |   52 +
 .../0/hop-tools/hop-conf/hop-conf-run-hpl-hwf.html |   46 +
 manual/0/hop-tools/hop-conf/hop-conf.html          |  224 +
 manual/0/hop-tools/hop-encrypt.html                |   28 +
 manual/0/hop-tools/hop-import.html                 |   72 +
 manual/0/hop-tools/hop-search.html                 |   45 +
 manual/0/hop-tools/index.html                      |   19 +
 manual/0/hop-usps.html                             |   19 +
 .../apache-hop-web-services-docker.html            |   34 +
 manual/0/how-to-guides/index.html                  |   19 +
 manual/0/image-testpage.html                       |   19 +
 manual/0/index.html                                |   19 +
 manual/0/logging/logging-basics.html               |   19 +
 manual/0/logging/logging-reflection.html           |   19 +
 manual/0/metadata-types/beam-file-definition.html  |   19 +
 .../cassandra/cassandra-connection.html            |   19 +
 manual/0/metadata-types/data-set.html              |   19 +
 manual/0/metadata-types/hop-server.html            |   19 +
 manual/0/metadata-types/index.html                 |   19 +
 manual/0/metadata-types/mongodb-connection.html    |   19 +
 .../0/metadata-types/neo4j/neo4j-connection.html   |   19 +
 .../0/metadata-types/neo4j/neo4j-graphmodel.html   |   19 +
 manual/0/metadata-types/partition-schema.html      |   19 +
 manual/0/metadata-types/pipeline-log.html          |   19 +
 manual/0/metadata-types/pipeline-probe.html        |   19 +
 manual/0/metadata-types/pipeline-run-config.html   |   19 +
 manual/0/metadata-types/pipeline-unit-test.html    |   19 +
 manual/0/metadata-types/rdbms-connection.html      |   19 +
 manual/0/metadata-types/splunk-connection.html     |   19 +
 manual/0/metadata-types/workflow-log.html          |   19 +
 manual/0/metadata-types/workflow-run-config.html   |   19 +
 manual/0/password/passwords.html                   |   37 +
 manual/0/password/passwords/aespasswords.html      |   26 +
 .../0/pipeline/beam/getting-started-with-beam.html |   19 +
 manual/0/pipeline/create-pipeline.html             |   19 +
 manual/0/pipeline/errorhandling.html               |   19 +
 manual/0/pipeline/hop-pipeline-editor.html         |   19 +
 manual/0/pipeline/metadata-injection.html          |   19 +
 manual/0/pipeline/partitioning.html                |   19 +
 .../beam-dataflow-pipeline-engine.html             |   19 +
 .../beam-direct-pipeline-engine.html               |   19 +
 .../beam-flink-pipeline-engine.html                |   26 +
 .../beam-spark-pipeline-engine.html                |   26 +
 .../native-local-pipeline-engine.html              |   19 +
 .../native-remote-pipeline-engine.html             |   19 +
 .../pipeline-run-configurations.html               |   19 +
 manual/0/pipeline/pipeline-unit-testing.html       |   34 +
 manual/0/pipeline/pipelines.html                   |   19 +
 manual/0/pipeline/run-preview-debug-pipeline.html  |   19 +
 manual/0/pipeline/transforms.html                  |   19 +
 manual/0/pipeline/transforms/abort.html            |   19 +
 manual/0/pipeline/transforms/addchecksum.html      |   19 +
 manual/0/pipeline/transforms/addconstant.html      |   19 +
 .../transforms/addfieldschangesequence.html        |   19 +
 manual/0/pipeline/transforms/addsequence.html      |   19 +
 manual/0/pipeline/transforms/addxml.html           |   19 +
 manual/0/pipeline/transforms/analyticquery.html    |   42 +
 manual/0/pipeline/transforms/apache-tika.html      |   19 +
 manual/0/pipeline/transforms/append.html           |   19 +
 manual/0/pipeline/transforms/avro-decode.html      |   19 +
 manual/0/pipeline/transforms/avro-file-input.html  |   19 +
 .../transforms/azure-event-hubs-listener.html      |   19 +
 .../transforms/azure-event-hubs-writer.html        |   19 +
 .../0/pipeline/transforms/beambigqueryinput.html   |   19 +
 .../0/pipeline/transforms/beambigqueryoutput.html  |   19 +
 .../0/pipeline/transforms/beambigtableinput.html   |   19 +
 .../0/pipeline/transforms/beambigtableoutput.html  |   19 +
 manual/0/pipeline/transforms/beamgcppublisher.html |   19 +
 .../0/pipeline/transforms/beamgcpsubscriber.html   |   19 +
 manual/0/pipeline/transforms/beaminput.html        |   19 +
 manual/0/pipeline/transforms/beamkafkaconsume.html |   19 +
 manual/0/pipeline/transforms/beamkafkaproduce.html |   19 +
 manual/0/pipeline/transforms/beamoutput.html       |   19 +
 manual/0/pipeline/transforms/beamtimestamp.html    |   19 +
 manual/0/pipeline/transforms/beamwindow.html       |   19 +
 .../0/pipeline/transforms/blockingtransform.html   |   19 +
 .../transforms/blockuntiltransformsfinish.html     |   19 +
 manual/0/pipeline/transforms/calculator.html       |   19 +
 manual/0/pipeline/transforms/calldbproc.html       |   19 +
 manual/0/pipeline/transforms/cassandra-input.html  |   19 +
 manual/0/pipeline/transforms/cassandra-output.html |   19 +
 .../0/pipeline/transforms/changefileencoding.html  |   19 +
 manual/0/pipeline/transforms/checkfilelocked.html  |   19 +
 .../transforms/checkwebserviceavailable.html       |   19 +
 manual/0/pipeline/transforms/clonerow.html         |   19 +
 manual/0/pipeline/transforms/closure.html          |   19 +
 manual/0/pipeline/transforms/coalesce.html         |   19 +
 manual/0/pipeline/transforms/columnexists.html     |   19 +
 .../0/pipeline/transforms/combinationlookup.html   |   19 +
 manual/0/pipeline/transforms/concatfields.html     |   19 +
 manual/0/pipeline/transforms/copyrowstoresult.html |   19 +
 .../0/pipeline/transforms/creditcardvalidator.html |   19 +
 manual/0/pipeline/transforms/csvinput.html         |   19 +
 manual/0/pipeline/transforms/databasejoin.html     |   23 +
 manual/0/pipeline/transforms/databaselookup.html   |   19 +
 manual/0/pipeline/transforms/datagrid.html         |   19 +
 manual/0/pipeline/transforms/delay.html            |   19 +
 manual/0/pipeline/transforms/delete.html           |   19 +
 .../0/pipeline/transforms/detectemptystream.html   |   19 +
 manual/0/pipeline/transforms/dimensionlookup.html  |   19 +
 manual/0/pipeline/transforms/dummy.html            |   19 +
 manual/0/pipeline/transforms/dynamicsqlrow.html    |   19 +
 manual/0/pipeline/transforms/edi2xml.html          |   28 +
 manual/0/pipeline/transforms/emailinput.html       |   19 +
 .../0/pipeline/transforms/enhancedjsonoutput.html  |   63 +
 manual/0/pipeline/transforms/excelinput.html       |   19 +
 manual/0/pipeline/transforms/excelwriter.html      |   19 +
 manual/0/pipeline/transforms/execprocess.html      |   19 +
 manual/0/pipeline/transforms/execsql.html          |   19 +
 manual/0/pipeline/transforms/execsqlrow.html       |   19 +
 manual/0/pipeline/transforms/exectests.html        |   19 +
 manual/0/pipeline/transforms/fake.html             |   19 +
 manual/0/pipeline/transforms/fileexists.html       |   19 +
 manual/0/pipeline/transforms/filemetadata.html     |   19 +
 manual/0/pipeline/transforms/filesfromresult.html  |   19 +
 manual/0/pipeline/transforms/filestoresult.html    |   19 +
 manual/0/pipeline/transforms/filterrows.html       |   23 +
 manual/0/pipeline/transforms/fuzzymatch.html       |   19 +
 .../0/pipeline/transforms/generaterandomvalue.html |   19 +
 manual/0/pipeline/transforms/getdatafromxml.html   |   19 +
 manual/0/pipeline/transforms/getfilenames.html     |   19 +
 manual/0/pipeline/transforms/getfilesrowcount.html |   19 +
 .../pipeline/transforms/getrecordsfromstream.html  |   19 +
 .../0/pipeline/transforms/getrowsfromresult.html   |   19 +
 .../0/pipeline/transforms/getserversequence.html   |   60 +
 manual/0/pipeline/transforms/getsubfolders.html    |   19 +
 manual/0/pipeline/transforms/getsystemdata.html    |   19 +
 manual/0/pipeline/transforms/gettablenames.html    |   19 +
 manual/0/pipeline/transforms/getvariable.html      |   19 +
 manual/0/pipeline/transforms/groupby.html          |   19 +
 manual/0/pipeline/transforms/http.html             |   19 +
 manual/0/pipeline/transforms/httppost.html         |   19 +
 manual/0/pipeline/transforms/identifylastrow.html  |   19 +
 manual/0/pipeline/transforms/ifnull.html           |   19 +
 manual/0/pipeline/transforms/injector.html         |   19 +
 manual/0/pipeline/transforms/insertupdate.html     |   19 +
 manual/0/pipeline/transforms/javafilter.html       |   22 +
 manual/0/pipeline/transforms/javascript.html       |   40 +
 manual/0/pipeline/transforms/joinrows.html         |   19 +
 manual/0/pipeline/transforms/jsoninput.html        |   19 +
 manual/0/pipeline/transforms/jsonoutput.html       |   82 +
 manual/0/pipeline/transforms/kafkaconsumer.html    |   19 +
 manual/0/pipeline/transforms/kafkaproducer.html    |   19 +
 manual/0/pipeline/transforms/ldapinput.html        |   19 +
 manual/0/pipeline/transforms/ldapoutput.html       |   19 +
 manual/0/pipeline/transforms/loadfileinput.html    |   19 +
 manual/0/pipeline/transforms/mail.html             |   19 +
 manual/0/pipeline/transforms/mailvalidator.html    |   19 +
 manual/0/pipeline/transforms/mapping-input.html    |   19 +
 manual/0/pipeline/transforms/mapping-output.html   |   19 +
 manual/0/pipeline/transforms/memgroupby.html       |   19 +
 manual/0/pipeline/transforms/mergejoin.html        |   19 +
 manual/0/pipeline/transforms/mergerows.html        |   19 +
 manual/0/pipeline/transforms/metadata-input.html   |   19 +
 manual/0/pipeline/transforms/metainject.html       |   19 +
 manual/0/pipeline/transforms/metastructure.html    |   19 +
 .../0/pipeline/transforms/monetdbbulkloader.html   |   19 +
 manual/0/pipeline/transforms/mongodbinput.html     |   19 +
 manual/0/pipeline/transforms/mongodboutput.html    |   29 +
 manual/0/pipeline/transforms/multimerge.html       |   19 +
 manual/0/pipeline/transforms/neo4j-cypher.html     |   19 +
 manual/0/pipeline/transforms/neo4j-gencsv.html     |   19 +
 manual/0/pipeline/transforms/neo4j-getloginfo.html |   19 +
 .../0/pipeline/transforms/neo4j-graphoutput.html   |   19 +
 manual/0/pipeline/transforms/neo4j-import.html     |   19 +
 manual/0/pipeline/transforms/neo4j-output.html     |   19 +
 .../0/pipeline/transforms/neo4j-split-graph.html   |   19 +
 manual/0/pipeline/transforms/nullif.html           |   19 +
 manual/0/pipeline/transforms/numberrange.html      |   19 +
 .../0/pipeline/transforms/parquet-file-input.html  |   19 +
 .../0/pipeline/transforms/parquet-file-output.html |   19 +
 manual/0/pipeline/transforms/pgpdecryptstream.html |   19 +
 manual/0/pipeline/transforms/pgpencryptstream.html |   19 +
 manual/0/pipeline/transforms/pipelineexecutor.html |   19 +
 .../0/pipeline/transforms/postgresbulkloader.html  |   19 +
 manual/0/pipeline/transforms/processfiles.html     |   19 +
 manual/0/pipeline/transforms/propertyinput.html    |   19 +
 manual/0/pipeline/transforms/propertyoutput.html   |   19 +
 manual/0/pipeline/transforms/regexeval.html        |   19 +
 manual/0/pipeline/transforms/replacestring.html    |   19 +
 .../0/pipeline/transforms/reservoirsampling.html   |   19 +
 manual/0/pipeline/transforms/rest.html             |   19 +
 manual/0/pipeline/transforms/rowdenormaliser.html  |   19 +
 manual/0/pipeline/transforms/rowflattener.html     |   19 +
 manual/0/pipeline/transforms/rowgenerator.html     |   19 +
 manual/0/pipeline/transforms/rownormaliser.html    |   19 +
 manual/0/pipeline/transforms/runssh.html           |   19 +
 .../pipeline/transforms/salesforce-connection.html |   19 +
 .../0/pipeline/transforms/salesforce-fields.html   |   19 +
 .../0/pipeline/transforms/salesforce-settings.html |   19 +
 manual/0/pipeline/transforms/salesforcedelete.html |   19 +
 manual/0/pipeline/transforms/salesforceinput.html  |   19 +
 manual/0/pipeline/transforms/salesforceinsert.html |   19 +
 manual/0/pipeline/transforms/salesforceupdate.html |   19 +
 manual/0/pipeline/transforms/salesforceupsert.html |   19 +
 manual/0/pipeline/transforms/samplerows.html       |   19 +
 manual/0/pipeline/transforms/sasinput.html         |   19 +
 manual/0/pipeline/transforms/selectvalues.html     |   19 +
 .../transforms/serialize-de-from-file.html         |   19 +
 .../0/pipeline/transforms/serialize-to-file.html   |   19 +
 manual/0/pipeline/transforms/serverstatus.html     |   19 +
 manual/0/pipeline/transforms/setvalueconstant.html |   19 +
 manual/0/pipeline/transforms/setvaluefield.html    |   19 +
 manual/0/pipeline/transforms/setvariable.html      |   19 +
 manual/0/pipeline/transforms/simple-mapping.html   |   19 +
 manual/0/pipeline/transforms/sort.html             |   19 +
 manual/0/pipeline/transforms/sortedmerge.html      |   19 +
 manual/0/pipeline/transforms/splitfields.html      |   19 +
 manual/0/pipeline/transforms/splitfieldtorows.html |   19 +
 manual/0/pipeline/transforms/splunkinput.html      |   19 +
 manual/0/pipeline/transforms/sqlfileoutput.html    |   19 +
 manual/0/pipeline/transforms/sstable-output.html   |   19 +
 .../transforms/standardizephonenumber.html         |   19 +
 manual/0/pipeline/transforms/streamlookup.html     |   19 +
 .../0/pipeline/transforms/streamschemamerge.html   |   19 +
 manual/0/pipeline/transforms/stringcut.html        |   19 +
 manual/0/pipeline/transforms/stringoperations.html |   19 +
 manual/0/pipeline/transforms/switchcase.html       |   19 +
 .../pipeline/transforms/synchronizeaftermerge.html |   19 +
 manual/0/pipeline/transforms/tablecompare.html     |   19 +
 manual/0/pipeline/transforms/tableexists.html      |   19 +
 manual/0/pipeline/transforms/tableinput.html       |   19 +
 manual/0/pipeline/transforms/tableoutput.html      |   27 +
 manual/0/pipeline/transforms/terafast.html         |   19 +
 manual/0/pipeline/transforms/textfileinput.html    |   19 +
 manual/0/pipeline/transforms/textfileoutput.html   |   19 +
 manual/0/pipeline/transforms/tokenreplacement.html |   19 +
 manual/0/pipeline/transforms/uniquerows.html       |   19 +
 .../0/pipeline/transforms/uniquerowsbyhashset.html |   19 +
 manual/0/pipeline/transforms/update.html           |   19 +
 .../pipeline/transforms/userdefinedjavaclass.html  |   96 +
 .../transforms/userdefinedjavaexpression.html      |   20 +
 manual/0/pipeline/transforms/valuemapper.html      |   21 +
 manual/0/pipeline/transforms/webservices.html      |   19 +
 manual/0/pipeline/transforms/workflowexecutor.html |   19 +
 manual/0/pipeline/transforms/writetolog.html       |   34 +
 manual/0/pipeline/transforms/xmlinputstream.html   |   19 +
 manual/0/pipeline/transforms/xmljoin.html          |   19 +
 manual/0/pipeline/transforms/xmloutput.html        |   19 +
 manual/0/pipeline/transforms/xsdvalidator.html     |   19 +
 manual/0/pipeline/transforms/xslt.html             |   19 +
 manual/0/pipeline/transforms/yamlinput.html        |   19 +
 manual/0/pipeline/transforms/zipfile.html          |   19 +
 manual/0/plugins/external-plugins.html             |   19 +
 manual/0/plugins/import/kettle-import.html         |   19 +
 manual/0/plugins/plugins.html                      |   19 +
 manual/0/plugins/projects.html                     |   19 +
 manual/0/plugins/projects/projects.html            |  122 +
 manual/0/projects/advanced.html                    |   95 +
 manual/0/projects/index.html                       |   19 +
 manual/0/projects/metadata.html                    |   42 +
 manual/0/projects/projects-environments.html       |   19 +
 manual/0/protips/index.html                        |   19 +
 manual/0/samples/samples.html                      |   19 +
 manual/0/snippets/best-practices/governance.html   |   19 +
 manual/0/snippets/best-practices/logging.html      |   19 +
 manual/0/snippets/best-practices/loops.html        |   19 +
 manual/0/snippets/best-practices/mappings.html     |   19 +
 .../best-practices/metadata-injection.html         |   19 +
 .../best-practices/naming-conventions.html         |   19 +
 .../best-practices/performance-basics.html         |   19 +
 manual/0/snippets/best-practices/size-matters.html |   19 +
 manual/0/snippets/best-practices/variables.html    |   19 +
 manual/0/snippets/hop-concepts/action.html         |   19 +
 manual/0/snippets/hop-concepts/environment.html    |   19 +
 .../hop-concepts/hop-projects-environments.html    |   19 +
 manual/0/snippets/hop-concepts/hop.html            |   19 +
 manual/0/snippets/hop-concepts/item-types.html     |   19 +
 manual/0/snippets/hop-concepts/lazy-loading.html   |   19 +
 manual/0/snippets/hop-concepts/metadata.html       |   19 +
 manual/0/snippets/hop-concepts/pipeline.html       |   19 +
 manual/0/snippets/hop-concepts/project.html        |   19 +
 manual/0/snippets/hop-concepts/transform.html      |   19 +
 manual/0/snippets/hop-concepts/workflow.html       |   19 +
 manual/0/snippets/hop-tools/hop-conf.html          |   19 +
 manual/0/snippets/hop-tools/hop-encrypt.html       |   19 +
 manual/0/snippets/hop-tools/hop-gui.html           |   19 +
 manual/0/snippets/hop-tools/hop-run.html           |   19 +
 manual/0/snippets/hop-tools/hop-search.html        |   19 +
 manual/0/snippets/hop-tools/hop-server.html        |   19 +
 manual/0/snippets/hop-tools/hop-tools.html         |   19 +
 manual/0/snippets/hop-tools/hop-translator.html    |   19 +
 manual/0/technology/azure/index.html               |   19 +
 manual/0/technology/cassandra/index.html           |   19 +
 manual/0/technology/google/index.html              |   19 +
 manual/0/technology/neo4j/index.html               |   19 +
 .../technology/neo4j/working-with-neo4j-data.html  |   23 +
 manual/0/technology/technology.html                |   19 +
 manual/0/variables.html                            |   23 +
 manual/0/vfs.html                                  |   19 +
 manual/0/vfs/aws-s3-vfs.html                       |   21 +
 manual/0/vfs/azure-blob-storage-vfs.html           |   31 +
 manual/0/vfs/dropbox-vfs.html                      |   20 +
 manual/0/vfs/google-cloud-storage-vfs.html         |   24 +
 manual/0/vfs/google-drive-vfs.html                 |   29 +
 manual/0/workflow/actions.html                     |   19 +
 manual/0/workflow/actions/abort.html               |   19 +
 manual/0/workflow/actions/addresultfilenames.html  |   19 +
 manual/0/workflow/actions/as400command.html        |   19 +
 manual/0/workflow/actions/cassandra-exec-cql.html  |   21 +
 manual/0/workflow/actions/checkdbconnection.html   |   19 +
 manual/0/workflow/actions/checkfilelocked.html     |   19 +
 manual/0/workflow/actions/columnsexist.html        |   19 +
 manual/0/workflow/actions/copyfiles.html           |   19 +
 .../workflow/actions/copymoveresultfilenames.html  |   19 +
 manual/0/workflow/actions/createfile.html          |   19 +
 manual/0/workflow/actions/createfolder.html        |   19 +
 manual/0/workflow/actions/delay.html               |   19 +
 manual/0/workflow/actions/deletefile.html          |   19 +
 manual/0/workflow/actions/deletefiles.html         |   19 +
 manual/0/workflow/actions/deletefolders.html       |   19 +
 .../0/workflow/actions/deleteresultfilenames.html  |   19 +
 manual/0/workflow/actions/dostounix.html           |   19 +
 manual/0/workflow/actions/dtdvalidator.html        |   19 +
 manual/0/workflow/actions/dummy.html               |   19 +
 manual/0/workflow/actions/eval.html                |   29 +
 manual/0/workflow/actions/evalfilesmetrics.html    |   19 +
 .../0/workflow/actions/evaluatetablecontent.html   |   19 +
 manual/0/workflow/actions/filecompare.html         |   19 +
 manual/0/workflow/actions/fileexists.html          |   19 +
 manual/0/workflow/actions/filesexist.html          |   19 +
 manual/0/workflow/actions/folderisempty.html       |   19 +
 manual/0/workflow/actions/folderscompare.html      |   19 +
 manual/0/workflow/actions/ftp.html                 |   19 +
 manual/0/workflow/actions/ftpdelete.html           |   19 +
 manual/0/workflow/actions/ftpput.html              |   19 +
 manual/0/workflow/actions/getpop.html              |   19 +
 manual/0/workflow/actions/http.html                |   19 +
 manual/0/workflow/actions/mail.html                |   19 +
 manual/0/workflow/actions/mailvalidator.html       |   19 +
 manual/0/workflow/actions/movefiles.html           |   19 +
 manual/0/workflow/actions/msgboxinfo.html          |   20 +
 manual/0/workflow/actions/mssqlbulkload.html       |   19 +
 manual/0/workflow/actions/mysqlbulkfile.html       |   19 +
 manual/0/workflow/actions/mysqlbulkload.html       |   19 +
 .../0/workflow/actions/neo4j-checkconnections.html |   19 +
 manual/0/workflow/actions/neo4j-constraint.html    |   19 +
 manual/0/workflow/actions/neo4j-cypherscript.html  |   22 +
 manual/0/workflow/actions/neo4j-index.html         |   19 +
 manual/0/workflow/actions/pgpdecryptfiles.html     |   19 +
 manual/0/workflow/actions/pgpencryptfiles.html     |   19 +
 manual/0/workflow/actions/pgpverify.html           |   19 +
 manual/0/workflow/actions/ping.html                |   19 +
 manual/0/workflow/actions/pipeline.html            |   19 +
 manual/0/workflow/actions/repeat-end.html          |   19 +
 manual/0/workflow/actions/repeat.html              |   19 +
 manual/0/workflow/actions/runpipelinetests.html    |   19 +
 .../0/workflow/actions/sendnagiospassivecheck.html |   19 +
 manual/0/workflow/actions/setvariables.html        |   19 +
 manual/0/workflow/actions/sftp.html                |   21 +
 manual/0/workflow/actions/sftpput.html             |   20 +
 manual/0/workflow/actions/shell.html               |   19 +
 manual/0/workflow/actions/simpleeval.html          |   19 +
 manual/0/workflow/actions/snmptrap.html            |   19 +
 manual/0/workflow/actions/sql.html                 |   19 +
 manual/0/workflow/actions/start.html               |   19 +
 manual/0/workflow/actions/success.html             |   19 +
 manual/0/workflow/actions/tableexists.html         |   19 +
 manual/0/workflow/actions/telnet.html              |   19 +
 manual/0/workflow/actions/truncatetables.html      |   19 +
 manual/0/workflow/actions/unzip.html               |   19 +
 manual/0/workflow/actions/waitforfile.html         |   19 +
 manual/0/workflow/actions/waitforsql.html          |   19 +
 manual/0/workflow/actions/webserviceavailable.html |   19 +
 manual/0/workflow/actions/workflow.html            |   19 +
 manual/0/workflow/actions/writetofile.html         |   19 +
 manual/0/workflow/actions/writetolog.html          |   19 +
 manual/0/workflow/actions/xmlwellformed.html       |   19 +
 manual/0/workflow/actions/xsdvalidator.html        |   19 +
 manual/0/workflow/actions/xslt.html                |   19 +
 manual/0/workflow/actions/zipfile.html             |   19 +
 manual/0/workflow/create-workflow.html             |   19 +
 manual/0/workflow/run-debug-workflow.html          |   19 +
 .../native-local-workflow-engine.html              |   19 +
 .../native-remote-workflow-engine.html             |   19 +
 .../workflow-run-configurations.html               |   19 +
 manual/0/workflow/workflows.html                   |   19 +
 manual/1.0.0/best-practices/index.html             |    2 +-
 manual/1.0.0/concepts.html                         |    2 +-
 manual/1.0.0/database/databases.html               |    2 +-
 manual/1.0.0/database/databases/as400.html         |    2 +-
 manual/1.0.0/database/databases/cache.html         |    2 +-
 manual/1.0.0/database/databases/clickhouse.html    |    2 +-
 manual/1.0.0/database/databases/db2.html           |    2 +-
 manual/1.0.0/database/databases/derby.html         |    2 +-
 manual/1.0.0/database/databases/doris.html         |    2 +-
 manual/1.0.0/database/databases/exasol.html        |    2 +-
 manual/1.0.0/database/databases/firebird.html      |    2 +-
 .../1.0.0/database/databases/googlebigquery.html   |    2 +-
 manual/1.0.0/database/databases/greenplum.html     |    2 +-
 manual/1.0.0/database/databases/h2.html            |    2 +-
 manual/1.0.0/database/databases/hypersonic.html    |    2 +-
 manual/1.0.0/database/databases/infinidb.html      |    2 +-
 manual/1.0.0/database/databases/infobright.html    |    2 +-
 manual/1.0.0/database/databases/informix.html      |    2 +-
 manual/1.0.0/database/databases/ingres.html        |    2 +-
 manual/1.0.0/database/databases/interbase.html     |    2 +-
 manual/1.0.0/database/databases/kingbasees.html    |    2 +-
 manual/1.0.0/database/databases/mariadb.html       |    2 +-
 manual/1.0.0/database/databases/monetdb.html       |    2 +-
 manual/1.0.0/database/databases/mssql.html         |    2 +-
 manual/1.0.0/database/databases/mssqlnative.html   |    2 +-
 manual/1.0.0/database/databases/mysql.html         |    2 +-
 manual/1.0.0/database/databases/netezza.html       |    2 +-
 manual/1.0.0/database/databases/oracle.html        |    2 +-
 manual/1.0.0/database/databases/oraclerdb.html     |    2 +-
 manual/1.0.0/database/databases/postgresql.html    |    2 +-
 manual/1.0.0/database/databases/redshift.html      |    2 +-
 manual/1.0.0/database/databases/sapdb.html         |    2 +-
 manual/1.0.0/database/databases/snowflake.html     |    2 +-
 manual/1.0.0/database/databases/sqlbase.html       |    2 +-
 manual/1.0.0/database/databases/sqlite.html        |    2 +-
 manual/1.0.0/database/databases/sybase.html        |    2 +-
 manual/1.0.0/database/databases/sybaseiq.html      |    2 +-
 manual/1.0.0/database/databases/teradata.html      |    2 +-
 manual/1.0.0/database/databases/universe.html      |    2 +-
 manual/1.0.0/database/databases/vectorwise.html    |    2 +-
 manual/1.0.0/database/databases/vertica.html       |    2 +-
 manual/1.0.0/faq/faq.html                          |    2 +-
 manual/1.0.0/getting-started/hop-concepts.html     |    2 +-
 .../getting-started/hop-download-install.html      |    2 +-
 .../1.0.0/getting-started/hop-gui-pipelines.html   |    2 +-
 .../1.0.0/getting-started/hop-gui-workflows.html   |    2 +-
 manual/1.0.0/getting-started/hop-gui.html          |    2 +-
 manual/1.0.0/getting-started/hop-next-steps.html   |    2 +-
 manual/1.0.0/getting-started/hop-tools.html        |    2 +-
 manual/1.0.0/getting-started/hop-what-is-hop.html  |    2 +-
 manual/1.0.0/getting-started/index.html            |    2 +-
 manual/1.0.0/hop-gui/file-dialog.html              |    2 +-
 manual/1.0.0/hop-gui/hop-gui-git.html              |    2 +-
 manual/1.0.0/hop-gui/hop-web.html                  |    4 +-
 manual/1.0.0/hop-gui/index.html                    |    2 +-
 .../hop-gui/perspective-data-orchestration.html    |    2 +-
 .../1.0.0/hop-gui/perspective-file-explorer.html   |    2 +-
 manual/1.0.0/hop-gui/perspective-metadata.html     |    2 +-
 manual/1.0.0/hop-gui/perspective-neo4j.html        |    2 +-
 manual/1.0.0/hop-gui/perspective-plugin.html       |    2 +-
 manual/1.0.0/hop-gui/perspective-search.html       |    2 +-
 manual/1.0.0/hop-gui/perspectives.html             |    2 +-
 manual/1.0.0/hop-gui/shortcuts.html                |    2 +-
 manual/1.0.0/hop-run/index.html                    |    2 +-
 manual/1.0.0/hop-search/index.html                 |    2 +-
 manual/1.0.0/hop-server/index.html                 |    4 +-
 manual/1.0.0/hop-server/rest-api.html              |    4 +-
 manual/1.0.0/hop-server/web-service.html           |    4 +-
 .../hop-tools/hop-conf/hop-conf-cloud-aws-s3.html  |    2 +-
 .../hop-conf-cloud-azure-blob-storage.html         |    4 +-
 .../hop-conf-cloud-google-cloud-storage.html       |    4 +-
 .../hop-conf/hop-conf-cloud-google-drive.html      |    4 +-
 .../hop-tools/hop-conf/hop-conf-projects.html      |    4 +-
 .../hop-tools/hop-conf/hop-conf-run-hpl-hwf.html   |    4 +-
 manual/1.0.0/hop-tools/hop-conf/hop-conf.html      |    6 +-
 manual/1.0.0/hop-tools/hop-encrypt.html            |    4 +-
 manual/1.0.0/hop-tools/hop-import.html             |    8 +-
 manual/1.0.0/hop-tools/hop-search.html             |    4 +-
 manual/1.0.0/hop-tools/index.html                  |    2 +-
 manual/1.0.0/hop-usps.html                         |    2 +-
 manual/1.0.0/image-testpage.html                   |    2 +-
 manual/1.0.0/index.html                            |    2 +-
 manual/1.0.0/logging/logging-basics.html           |    2 +-
 manual/1.0.0/logging/logging-reflection.html       |    2 +-
 .../1.0.0/metadata-types/beam-file-definition.html |    2 +-
 .../cassandra/cassandra-connection.html            |    2 +-
 manual/1.0.0/metadata-types/data-set.html          |    2 +-
 manual/1.0.0/metadata-types/hop-server.html        |    2 +-
 manual/1.0.0/metadata-types/index.html             |    2 +-
 .../1.0.0/metadata-types/mongodb-connection.html   |    2 +-
 .../metadata-types/neo4j/neo4j-connection.html     |    2 +-
 .../metadata-types/neo4j/neo4j-graphmodel.html     |    2 +-
 manual/1.0.0/metadata-types/partition-schema.html  |    2 +-
 manual/1.0.0/metadata-types/pipeline-log.html      |    2 +-
 manual/1.0.0/metadata-types/pipeline-probe.html    |    2 +-
 .../1.0.0/metadata-types/pipeline-run-config.html  |    2 +-
 .../1.0.0/metadata-types/pipeline-unit-test.html   |    2 +-
 manual/1.0.0/metadata-types/rdbms-connection.html  |    2 +-
 manual/1.0.0/metadata-types/splunk-connection.html |    2 +-
 manual/1.0.0/metadata-types/web-service.html       |    2 +-
 manual/1.0.0/metadata-types/workflow-log.html      |    2 +-
 .../1.0.0/metadata-types/workflow-run-config.html  |    2 +-
 manual/1.0.0/password/passwords.html               |    4 +-
 manual/1.0.0/password/passwords/aespasswords.html  |    4 +-
 .../pipeline/beam/getting-started-with-beam.html   |    2 +-
 manual/1.0.0/pipeline/create-pipeline.html         |    2 +-
 manual/1.0.0/pipeline/errorhandling.html           |    2 +-
 manual/1.0.0/pipeline/hop-pipeline-editor.html     |    2 +-
 manual/1.0.0/pipeline/metadata-injection.html      |    2 +-
 manual/1.0.0/pipeline/partitioning.html            |    2 +-
 .../beam-dataflow-pipeline-engine.html             |    2 +-
 .../beam-direct-pipeline-engine.html               |    2 +-
 .../beam-flink-pipeline-engine.html                |    2 +-
 .../beam-spark-pipeline-engine.html                |    4 +-
 .../native-local-pipeline-engine.html              |    2 +-
 .../native-remote-pipeline-engine.html             |    2 +-
 .../pipeline-run-configurations.html               |    2 +-
 manual/1.0.0/pipeline/pipeline-unit-testing.html   |    4 +-
 manual/1.0.0/pipeline/pipelines.html               |    2 +-
 .../1.0.0/pipeline/run-preview-debug-pipeline.html |    2 +-
 manual/1.0.0/pipeline/transforms.html              |    2 +-
 manual/1.0.0/pipeline/transforms/abort.html        |    2 +-
 manual/1.0.0/pipeline/transforms/addchecksum.html  |    2 +-
 manual/1.0.0/pipeline/transforms/addconstant.html  |    2 +-
 .../transforms/addfieldschangesequence.html        |    2 +-
 manual/1.0.0/pipeline/transforms/addsequence.html  |    2 +-
 manual/1.0.0/pipeline/transforms/addxml.html       |    2 +-
 .../1.0.0/pipeline/transforms/analyticquery.html   |    4 +-
 manual/1.0.0/pipeline/transforms/append.html       |    2 +-
 manual/1.0.0/pipeline/transforms/avro-decode.html  |    2 +-
 .../1.0.0/pipeline/transforms/avro-file-input.html |    2 +-
 .../transforms/azure-event-hubs-listener.html      |    2 +-
 .../transforms/azure-event-hubs-writer.html        |    2 +-
 .../pipeline/transforms/beambigqueryinput.html     |    2 +-
 .../pipeline/transforms/beambigqueryoutput.html    |    2 +-
 .../pipeline/transforms/beambigtableinput.html     |    2 +-
 .../pipeline/transforms/beambigtableoutput.html    |    2 +-
 .../pipeline/transforms/beamgcppublisher.html      |    2 +-
 .../pipeline/transforms/beamgcpsubscriber.html     |    2 +-
 manual/1.0.0/pipeline/transforms/beaminput.html    |    2 +-
 .../pipeline/transforms/beamkafkaconsume.html      |    2 +-
 .../pipeline/transforms/beamkafkaproduce.html      |    2 +-
 manual/1.0.0/pipeline/transforms/beamoutput.html   |    2 +-
 .../1.0.0/pipeline/transforms/beamtimestamp.html   |    2 +-
 manual/1.0.0/pipeline/transforms/beamwindow.html   |    2 +-
 .../pipeline/transforms/blockingtransform.html     |    2 +-
 .../transforms/blockuntiltransformsfinish.html     |    2 +-
 manual/1.0.0/pipeline/transforms/calculator.html   |    2 +-
 manual/1.0.0/pipeline/transforms/calldbproc.html   |    2 +-
 .../1.0.0/pipeline/transforms/cassandra-input.html |    2 +-
 .../pipeline/transforms/cassandra-output.html      |    2 +-
 .../pipeline/transforms/changefileencoding.html    |    2 +-
 .../1.0.0/pipeline/transforms/checkfilelocked.html |    2 +-
 .../transforms/checkwebserviceavailable.html       |    2 +-
 manual/1.0.0/pipeline/transforms/clonerow.html     |    2 +-
 manual/1.0.0/pipeline/transforms/closure.html      |    2 +-
 manual/1.0.0/pipeline/transforms/coalesce.html     |    2 +-
 manual/1.0.0/pipeline/transforms/columnexists.html |    2 +-
 .../pipeline/transforms/combinationlookup.html     |    2 +-
 manual/1.0.0/pipeline/transforms/concatfields.html |    2 +-
 .../pipeline/transforms/copyrowstoresult.html      |    2 +-
 .../pipeline/transforms/creditcardvalidator.html   |    2 +-
 manual/1.0.0/pipeline/transforms/csvinput.html     |    2 +-
 manual/1.0.0/pipeline/transforms/cubeinput.html    |    2 +-
 manual/1.0.0/pipeline/transforms/cubeoutput.html   |    2 +-
 manual/1.0.0/pipeline/transforms/databasejoin.html |    4 +-
 .../1.0.0/pipeline/transforms/databaselookup.html  |    2 +-
 manual/1.0.0/pipeline/transforms/datagrid.html     |    2 +-
 manual/1.0.0/pipeline/transforms/delay.html        |    2 +-
 manual/1.0.0/pipeline/transforms/delete.html       |    2 +-
 .../pipeline/transforms/detectemptystream.html     |    2 +-
 .../1.0.0/pipeline/transforms/dimensionlookup.html |    2 +-
 manual/1.0.0/pipeline/transforms/dummy.html        |    2 +-
 .../1.0.0/pipeline/transforms/dynamicsqlrow.html   |    2 +-
 manual/1.0.0/pipeline/transforms/edi2xml.html      |    4 +-
 manual/1.0.0/pipeline/transforms/emailinput.html   |    2 +-
 .../pipeline/transforms/enhancedjsonoutput.html    |    4 +-
 manual/1.0.0/pipeline/transforms/excelinput.html   |    2 +-
 manual/1.0.0/pipeline/transforms/excelwriter.html  |    2 +-
 manual/1.0.0/pipeline/transforms/execprocess.html  |    2 +-
 manual/1.0.0/pipeline/transforms/execsql.html      |    2 +-
 manual/1.0.0/pipeline/transforms/execsqlrow.html   |    2 +-
 manual/1.0.0/pipeline/transforms/exectests.html    |    2 +-
 manual/1.0.0/pipeline/transforms/fake.html         |    2 +-
 manual/1.0.0/pipeline/transforms/fileexists.html   |    2 +-
 manual/1.0.0/pipeline/transforms/filemetadata.html |    2 +-
 .../1.0.0/pipeline/transforms/filesfromresult.html |    2 +-
 .../1.0.0/pipeline/transforms/filestoresult.html   |    2 +-
 manual/1.0.0/pipeline/transforms/filterrows.html   |    4 +-
 manual/1.0.0/pipeline/transforms/fuzzymatch.html   |    2 +-
 .../pipeline/transforms/generaterandomvalue.html   |    2 +-
 .../1.0.0/pipeline/transforms/getdatafromxml.html  |    2 +-
 manual/1.0.0/pipeline/transforms/getfilenames.html |    2 +-
 .../pipeline/transforms/getfilesrowcount.html      |    2 +-
 .../pipeline/transforms/getrecordsfromstream.html  |    2 +-
 .../pipeline/transforms/getrowsfromresult.html     |    2 +-
 .../pipeline/transforms/getserversequence.html     |    4 +-
 .../1.0.0/pipeline/transforms/getsubfolders.html   |    2 +-
 .../1.0.0/pipeline/transforms/getsystemdata.html   |    2 +-
 .../1.0.0/pipeline/transforms/gettablenames.html   |    2 +-
 manual/1.0.0/pipeline/transforms/getvariable.html  |    2 +-
 manual/1.0.0/pipeline/transforms/groupby.html      |    2 +-
 manual/1.0.0/pipeline/transforms/http.html         |    2 +-
 manual/1.0.0/pipeline/transforms/httppost.html     |    2 +-
 .../1.0.0/pipeline/transforms/identifylastrow.html |    2 +-
 manual/1.0.0/pipeline/transforms/ifnull.html       |    2 +-
 manual/1.0.0/pipeline/transforms/injector.html     |    2 +-
 manual/1.0.0/pipeline/transforms/insertupdate.html |    2 +-
 manual/1.0.0/pipeline/transforms/javafilter.html   |    4 +-
 manual/1.0.0/pipeline/transforms/javascript.html   |    2 +-
 manual/1.0.0/pipeline/transforms/joinrows.html     |    2 +-
 manual/1.0.0/pipeline/transforms/jsoninput.html    |    2 +-
 manual/1.0.0/pipeline/transforms/jsonoutput.html   |    4 +-
 .../1.0.0/pipeline/transforms/kafkaconsumer.html   |    2 +-
 .../1.0.0/pipeline/transforms/kafkaproducer.html   |    2 +-
 manual/1.0.0/pipeline/transforms/ldapinput.html    |    2 +-
 manual/1.0.0/pipeline/transforms/ldapoutput.html   |    2 +-
 .../1.0.0/pipeline/transforms/loadfileinput.html   |    2 +-
 manual/1.0.0/pipeline/transforms/mail.html         |    2 +-
 .../1.0.0/pipeline/transforms/mailvalidator.html   |    2 +-
 .../1.0.0/pipeline/transforms/mapping-input.html   |    2 +-
 .../1.0.0/pipeline/transforms/mapping-output.html  |    2 +-
 manual/1.0.0/pipeline/transforms/memgroupby.html   |    2 +-
 manual/1.0.0/pipeline/transforms/mergejoin.html    |    2 +-
 manual/1.0.0/pipeline/transforms/mergerows.html    |    2 +-
 manual/1.0.0/pipeline/transforms/metainject.html   |    2 +-
 .../1.0.0/pipeline/transforms/metastructure.html   |    2 +-
 .../pipeline/transforms/monetdbbulkloader.html     |    2 +-
 manual/1.0.0/pipeline/transforms/mongodbinput.html |    2 +-
 .../1.0.0/pipeline/transforms/mongodboutput.html   |    6 +-
 manual/1.0.0/pipeline/transforms/multimerge.html   |    2 +-
 manual/1.0.0/pipeline/transforms/neo4j-cypher.html |    2 +-
 manual/1.0.0/pipeline/transforms/neo4j-gencsv.html |    2 +-
 .../pipeline/transforms/neo4j-getloginfo.html      |    2 +-
 .../pipeline/transforms/neo4j-graphoutput.html     |    2 +-
 manual/1.0.0/pipeline/transforms/neo4j-import.html |    2 +-
 manual/1.0.0/pipeline/transforms/neo4j-output.html |    2 +-
 .../pipeline/transforms/neo4j-split-graph.html     |    2 +-
 manual/1.0.0/pipeline/transforms/nullif.html       |    2 +-
 manual/1.0.0/pipeline/transforms/numberrange.html  |    2 +-
 .../pipeline/transforms/parquet-file-input.html    |    2 +-
 .../pipeline/transforms/parquet-file-output.html   |    2 +-
 manual/1.0.0/pipeline/transforms/pgbulkloader.html |    4 +-
 .../pipeline/transforms/pgpdecryptstream.html      |    2 +-
 .../pipeline/transforms/pgpencryptstream.html      |    2 +-
 .../pipeline/transforms/pipelineexecutor.html      |    2 +-
 .../pipeline/transforms/postgresbulkloader.html    |    2 +-
 manual/1.0.0/pipeline/transforms/processfiles.html |    2 +-
 .../1.0.0/pipeline/transforms/propertyinput.html   |    2 +-
 .../1.0.0/pipeline/transforms/propertyoutput.html  |    2 +-
 manual/1.0.0/pipeline/transforms/regexeval.html    |    2 +-
 .../1.0.0/pipeline/transforms/replacestring.html   |    2 +-
 .../pipeline/transforms/reservoirsampling.html     |    2 +-
 manual/1.0.0/pipeline/transforms/rest.html         |    2 +-
 .../1.0.0/pipeline/transforms/rowdenormaliser.html |    2 +-
 manual/1.0.0/pipeline/transforms/rowflattener.html |    2 +-
 manual/1.0.0/pipeline/transforms/rowgenerator.html |    2 +-
 .../1.0.0/pipeline/transforms/rownormaliser.html   |    2 +-
 manual/1.0.0/pipeline/transforms/runssh.html       |    2 +-
 .../pipeline/transforms/salesforce-connection.html |    2 +-
 .../pipeline/transforms/salesforce-fields.html     |    2 +-
 .../pipeline/transforms/salesforce-settings.html   |    2 +-
 .../pipeline/transforms/salesforcedelete.html      |    2 +-
 .../1.0.0/pipeline/transforms/salesforceinput.html |    2 +-
 .../pipeline/transforms/salesforceinsert.html      |    2 +-
 .../pipeline/transforms/salesforceupdate.html      |    2 +-
 .../pipeline/transforms/salesforceupsert.html      |    2 +-
 manual/1.0.0/pipeline/transforms/samplerows.html   |    2 +-
 manual/1.0.0/pipeline/transforms/sasinput.html     |    2 +-
 manual/1.0.0/pipeline/transforms/selectvalues.html |    2 +-
 .../pipeline/transforms/setvalueconstant.html      |    2 +-
 .../1.0.0/pipeline/transforms/setvaluefield.html   |    2 +-
 manual/1.0.0/pipeline/transforms/setvariable.html  |    2 +-
 .../1.0.0/pipeline/transforms/simple-mapping.html  |    2 +-
 manual/1.0.0/pipeline/transforms/sort.html         |    2 +-
 manual/1.0.0/pipeline/transforms/sortedmerge.html  |    2 +-
 manual/1.0.0/pipeline/transforms/splitfields.html  |    2 +-
 .../pipeline/transforms/splitfieldtorows.html      |    2 +-
 manual/1.0.0/pipeline/transforms/splunkinput.html  |    2 +-
 .../1.0.0/pipeline/transforms/sqlfileoutput.html   |    2 +-
 .../1.0.0/pipeline/transforms/sstable-output.html  |    2 +-
 manual/1.0.0/pipeline/transforms/streamlookup.html |    2 +-
 .../pipeline/transforms/streamschemamerge.html     |    2 +-
 manual/1.0.0/pipeline/transforms/stringcut.html    |    2 +-
 .../pipeline/transforms/stringoperations.html      |    2 +-
 manual/1.0.0/pipeline/transforms/switchcase.html   |    2 +-
 .../pipeline/transforms/synchronizeaftermerge.html |    2 +-
 manual/1.0.0/pipeline/transforms/tablecompare.html |    2 +-
 manual/1.0.0/pipeline/transforms/tableexists.html  |    2 +-
 manual/1.0.0/pipeline/transforms/tableinput.html   |    2 +-
 manual/1.0.0/pipeline/transforms/tableoutput.html  |    4 +-
 manual/1.0.0/pipeline/transforms/terafast.html     |    2 +-
 .../1.0.0/pipeline/transforms/textfileinput.html   |    2 +-
 .../1.0.0/pipeline/transforms/textfileoutput.html  |    2 +-
 .../pipeline/transforms/tokenreplacement.html      |    2 +-
 manual/1.0.0/pipeline/transforms/uniquerows.html   |    2 +-
 .../pipeline/transforms/uniquerowsbyhashset.html   |    2 +-
 manual/1.0.0/pipeline/transforms/update.html       |    2 +-
 .../pipeline/transforms/userdefinedjavaclass.html  |    4 +-
 .../transforms/userdefinedjavaexpression.html      |    4 +-
 manual/1.0.0/pipeline/transforms/valuemapper.html  |    4 +-
 manual/1.0.0/pipeline/transforms/webservices.html  |    2 +-
 .../pipeline/transforms/workflowexecutor.html      |    2 +-
 manual/1.0.0/pipeline/transforms/writetolog.html   |    4 +-
 .../1.0.0/pipeline/transforms/xmlinputstream.html  |    2 +-
 manual/1.0.0/pipeline/transforms/xmljoin.html      |    2 +-
 manual/1.0.0/pipeline/transforms/xmloutput.html    |    2 +-
 manual/1.0.0/pipeline/transforms/xsdvalidator.html |    2 +-
 manual/1.0.0/pipeline/transforms/xslt.html         |    2 +-
 manual/1.0.0/pipeline/transforms/yamlinput.html    |    2 +-
 manual/1.0.0/pipeline/transforms/zipfile.html      |    2 +-
 manual/1.0.0/plugins/external-plugins.html         |    2 +-
 manual/1.0.0/plugins/import/kettle-import.html     |    2 +-
 manual/1.0.0/plugins/plugins.html                  |    2 +-
 manual/1.0.0/plugins/projects.html                 |    2 +-
 manual/1.0.0/plugins/projects/projects.html        |    4 +-
 manual/1.0.0/projects/advanced.html                |    4 +-
 manual/1.0.0/projects/index.html                   |    2 +-
 manual/1.0.0/projects/metadata.html                |    4 +-
 manual/1.0.0/projects/projects-environments.html   |    2 +-
 manual/1.0.0/protips/index.html                    |    2 +-
 manual/1.0.0/samples/samples.html                  |    2 +-
 .../1.0.0/snippets/best-practices/governance.html  |    2 +-
 manual/1.0.0/snippets/best-practices/logging.html  |    2 +-
 manual/1.0.0/snippets/best-practices/loops.html    |    2 +-
 manual/1.0.0/snippets/best-practices/mappings.html |    2 +-
 .../best-practices/metadata-injection.html         |    2 +-
 .../best-practices/naming-conventions.html         |    2 +-
 .../best-practices/performance-basics.html         |    2 +-
 .../snippets/best-practices/size-matters.html      |    2 +-
 .../1.0.0/snippets/best-practices/variables.html   |    2 +-
 manual/1.0.0/snippets/hop-concepts/action.html     |    2 +-
 .../1.0.0/snippets/hop-concepts/environment.html   |    2 +-
 .../hop-concepts/hop-projects-environments.html    |    2 +-
 manual/1.0.0/snippets/hop-concepts/hop.html        |    2 +-
 manual/1.0.0/snippets/hop-concepts/item-types.html |    2 +-
 .../1.0.0/snippets/hop-concepts/lazy-loading.html  |    2 +-
 manual/1.0.0/snippets/hop-concepts/metadata.html   |    2 +-
 manual/1.0.0/snippets/hop-concepts/pipeline.html   |    2 +-
 manual/1.0.0/snippets/hop-concepts/project.html    |    2 +-
 manual/1.0.0/snippets/hop-concepts/transform.html  |    2 +-
 manual/1.0.0/snippets/hop-concepts/workflow.html   |    2 +-
 manual/1.0.0/snippets/hop-tools/hop-conf.html      |    2 +-
 manual/1.0.0/snippets/hop-tools/hop-encrypt.html   |    2 +-
 manual/1.0.0/snippets/hop-tools/hop-gui.html       |    2 +-
 manual/1.0.0/snippets/hop-tools/hop-run.html       |    2 +-
 manual/1.0.0/snippets/hop-tools/hop-search.html    |    2 +-
 manual/1.0.0/snippets/hop-tools/hop-server.html    |    2 +-
 manual/1.0.0/snippets/hop-tools/hop-tools.html     |    2 +-
 .../1.0.0/snippets/hop-tools/hop-translator.html   |    2 +-
 manual/1.0.0/technology/azure/index.html           |    2 +-
 manual/1.0.0/technology/cassandra/index.html       |    2 +-
 manual/1.0.0/technology/google/index.html          |    2 +-
 manual/1.0.0/technology/neo4j/index.html           |    2 +-
 .../technology/neo4j/working-with-neo4j-data.html  |    4 +-
 manual/1.0.0/technology/technology.html            |    2 +-
 manual/1.0.0/variables.html                        |    4 +-
 manual/1.0.0/vfs.html                              |    2 +-
 manual/1.0.0/vfs/aws-s3-vfs.html                   |    4 +-
 manual/1.0.0/vfs/azure-blob-storage-vfs.html       |    4 +-
 manual/1.0.0/vfs/dropbox-vfs.html                  |    4 +-
 manual/1.0.0/vfs/google-cloud-storage-vfs.html     |    4 +-
 manual/1.0.0/vfs/google-drive-vfs.html             |    6 +-
 manual/1.0.0/workflow/actions.html                 |    2 +-
 manual/1.0.0/workflow/actions/abort.html           |    2 +-
 .../1.0.0/workflow/actions/addresultfilenames.html |    2 +-
 manual/1.0.0/workflow/actions/as400command.html    |    2 +-
 .../1.0.0/workflow/actions/cassandra-exec-cql.html |    4 +-
 .../1.0.0/workflow/actions/checkdbconnection.html  |    2 +-
 manual/1.0.0/workflow/actions/checkfilelocked.html |    2 +-
 manual/1.0.0/workflow/actions/columnsexist.html    |    2 +-
 manual/1.0.0/workflow/actions/copyfiles.html       |    2 +-
 .../workflow/actions/copymoveresultfilenames.html  |    2 +-
 manual/1.0.0/workflow/actions/createfile.html      |    2 +-
 manual/1.0.0/workflow/actions/createfolder.html    |    2 +-
 manual/1.0.0/workflow/actions/delay.html           |    2 +-
 manual/1.0.0/workflow/actions/deletefile.html      |    2 +-
 manual/1.0.0/workflow/actions/deletefiles.html     |    2 +-
 manual/1.0.0/workflow/actions/deletefolders.html   |    2 +-
 .../workflow/actions/deleteresultfilenames.html    |    2 +-
 manual/1.0.0/workflow/actions/dostounix.html       |    2 +-
 manual/1.0.0/workflow/actions/dtdvalidator.html    |    2 +-
 manual/1.0.0/workflow/actions/dummy.html           |    2 +-
 manual/1.0.0/workflow/actions/eval.html            |    4 +-
 .../1.0.0/workflow/actions/evalfilesmetrics.html   |    2 +-
 .../workflow/actions/evaluatetablecontent.html     |    2 +-
 manual/1.0.0/workflow/actions/filecompare.html     |    2 +-
 manual/1.0.0/workflow/actions/fileexists.html      |    2 +-
 manual/1.0.0/workflow/actions/filesexist.html      |    2 +-
 manual/1.0.0/workflow/actions/folderisempty.html   |    2 +-
 manual/1.0.0/workflow/actions/folderscompare.html  |    2 +-
 manual/1.0.0/workflow/actions/ftp.html             |    2 +-
 manual/1.0.0/workflow/actions/ftpdelete.html       |    2 +-
 manual/1.0.0/workflow/actions/ftpput.html          |    2 +-
 manual/1.0.0/workflow/actions/getpop.html          |    2 +-
 manual/1.0.0/workflow/actions/http.html            |    2 +-
 manual/1.0.0/workflow/actions/mail.html            |    2 +-
 manual/1.0.0/workflow/actions/mailvalidator.html   |    2 +-
 manual/1.0.0/workflow/actions/movefiles.html       |    2 +-
 manual/1.0.0/workflow/actions/msgboxinfo.html      |    4 +-
 manual/1.0.0/workflow/actions/mssqlbulkload.html   |    2 +-
 manual/1.0.0/workflow/actions/mysqlbulkfile.html   |    2 +-
 manual/1.0.0/workflow/actions/mysqlbulkload.html   |    2 +-
 .../workflow/actions/neo4j-checkconnections.html   |    2 +-
 .../1.0.0/workflow/actions/neo4j-constraint.html   |    2 +-
 .../1.0.0/workflow/actions/neo4j-cypherscript.html |    4 +-
 manual/1.0.0/workflow/actions/neo4j-index.html     |    2 +-
 manual/1.0.0/workflow/actions/pgpdecryptfiles.html |    2 +-
 manual/1.0.0/workflow/actions/pgpencryptfiles.html |    2 +-
 manual/1.0.0/workflow/actions/pgpfiles.html        |    2 +-
 manual/1.0.0/workflow/actions/pgpverify.html       |    2 +-
 manual/1.0.0/workflow/actions/ping.html            |    2 +-
 manual/1.0.0/workflow/actions/pipeline.html        |    2 +-
 manual/1.0.0/workflow/actions/repeat-end.html      |    2 +-
 manual/1.0.0/workflow/actions/repeat.html          |    2 +-
 .../1.0.0/workflow/actions/runpipelinetests.html   |    2 +-
 .../workflow/actions/sendnagiospassivecheck.html   |    2 +-
 manual/1.0.0/workflow/actions/setvariables.html    |    2 +-
 manual/1.0.0/workflow/actions/sftp.html            |    4 +-
 manual/1.0.0/workflow/actions/sftpput.html         |    4 +-
 manual/1.0.0/workflow/actions/shell.html           |    2 +-
 manual/1.0.0/workflow/actions/simpleeval.html      |    2 +-
 manual/1.0.0/workflow/actions/snmptrap.html        |    2 +-
 manual/1.0.0/workflow/actions/sql.html             |    2 +-
 manual/1.0.0/workflow/actions/start.html           |    2 +-
 manual/1.0.0/workflow/actions/success.html         |    2 +-
 manual/1.0.0/workflow/actions/tableexists.html     |    2 +-
 manual/1.0.0/workflow/actions/telnet.html          |    2 +-
 manual/1.0.0/workflow/actions/truncatetables.html  |    2 +-
 manual/1.0.0/workflow/actions/unzip.html           |    2 +-
 manual/1.0.0/workflow/actions/waitforfile.html     |    2 +-
 manual/1.0.0/workflow/actions/waitforsql.html      |    2 +-
 .../workflow/actions/webserviceavailable.html      |    2 +-
 manual/1.0.0/workflow/actions/workflow.html        |    2 +-
 manual/1.0.0/workflow/actions/writetofile.html     |    2 +-
 manual/1.0.0/workflow/actions/writetolog.html      |    2 +-
 manual/1.0.0/workflow/actions/xmlwellformed.html   |    2 +-
 manual/1.0.0/workflow/actions/xsdvalidator.html    |    2 +-
 manual/1.0.0/workflow/actions/xslt.html            |    2 +-
 manual/1.0.0/workflow/actions/zipfile.html         |    2 +-
 manual/1.0.0/workflow/create-workflow.html         |    2 +-
 manual/1.0.0/workflow/run-debug-workflow.html      |    2 +-
 .../native-local-workflow-engine.html              |    2 +-
 .../native-remote-workflow-engine.html             |    2 +-
 .../workflow-run-configurations.html               |    2 +-
 manual/1.0.0/workflow/workflows.html               |    2 +-
 manual/1.1.0/best-practices/index.html             |   19 -
 manual/1.1.0/concepts.html                         |   19 -
 manual/1.1.0/database/databases.html               |   19 -
 manual/1.1.0/database/databases/as400.html         |   19 -
 manual/1.1.0/database/databases/cache.html         |   19 -
 manual/1.1.0/database/databases/clickhouse.html    |   19 -
 manual/1.1.0/database/databases/db2.html           |   19 -
 manual/1.1.0/database/databases/derby.html         |   19 -
 manual/1.1.0/database/databases/doris.html         |   19 -
 manual/1.1.0/database/databases/exasol.html        |   19 -
 manual/1.1.0/database/databases/firebird.html      |   19 -
 .../1.1.0/database/databases/googlebigquery.html   |   19 -
 manual/1.1.0/database/databases/greenplum.html     |   19 -
 manual/1.1.0/database/databases/h2.html            |   19 -
 manual/1.1.0/database/databases/hypersonic.html    |   19 -
 manual/1.1.0/database/databases/infinidb.html      |   19 -
 manual/1.1.0/database/databases/infobright.html    |   19 -
 manual/1.1.0/database/databases/informix.html      |   19 -
 manual/1.1.0/database/databases/ingres.html        |   19 -
 manual/1.1.0/database/databases/interbase.html     |   19 -
 manual/1.1.0/database/databases/kingbasees.html    |   19 -
 manual/1.1.0/database/databases/mariadb.html       |   19 -
 manual/1.1.0/database/databases/monetdb.html       |   19 -
 manual/1.1.0/database/databases/mssql.html         |   19 -
 manual/1.1.0/database/databases/mssqlnative.html   |   19 -
 manual/1.1.0/database/databases/mysql.html         |   19 -
 manual/1.1.0/database/databases/netezza.html       |   19 -
 manual/1.1.0/database/databases/oracle.html        |   19 -
 manual/1.1.0/database/databases/oraclerdb.html     |   19 -
 manual/1.1.0/database/databases/postgresql.html    |   19 -
 manual/1.1.0/database/databases/redshift.html      |   19 -
 manual/1.1.0/database/databases/sapdb.html         |   19 -
 manual/1.1.0/database/databases/snowflake.html     |   19 -
 manual/1.1.0/database/databases/sqlbase.html       |   19 -
 manual/1.1.0/database/databases/sqlite.html        |   19 -
 manual/1.1.0/database/databases/sybase.html        |   19 -
 manual/1.1.0/database/databases/sybaseiq.html      |   19 -
 manual/1.1.0/database/databases/teradata.html      |   19 -
 manual/1.1.0/database/databases/universe.html      |   19 -
 manual/1.1.0/database/databases/vectorwise.html    |   19 -
 manual/1.1.0/database/databases/vertica.html       |   19 -
 manual/1.1.0/faq/faq.html                          |   19 -
 manual/1.1.0/getting-started/hop-concepts.html     |   19 -
 .../getting-started/hop-download-install.html      |   19 -
 .../1.1.0/getting-started/hop-gui-pipelines.html   |   19 -
 .../1.1.0/getting-started/hop-gui-workflows.html   |   19 -
 manual/1.1.0/getting-started/hop-gui.html          |   19 -
 manual/1.1.0/getting-started/hop-next-steps.html   |   19 -
 manual/1.1.0/getting-started/hop-tools.html        |   19 -
 manual/1.1.0/getting-started/hop-what-is-hop.html  |   19 -
 manual/1.1.0/getting-started/index.html            |   19 -
 manual/1.1.0/hop-gui/file-dialog.html              |   19 -
 manual/1.1.0/hop-gui/hop-gui-git.html              |   19 -
 manual/1.1.0/hop-gui/hop-gui-popup-dialog.html     |   19 -
 manual/1.1.0/hop-gui/hop-web.html                  |   23 -
 manual/1.1.0/hop-gui/index.html                    |   19 -
 .../hop-gui/perspective-data-orchestration.html    |   19 -
 .../1.1.0/hop-gui/perspective-file-explorer.html   |   19 -
 manual/1.1.0/hop-gui/perspective-metadata.html     |   19 -
 manual/1.1.0/hop-gui/perspective-neo4j.html        |   19 -
 manual/1.1.0/hop-gui/perspective-plugin.html       |   19 -
 manual/1.1.0/hop-gui/perspective-search.html       |   19 -
 manual/1.1.0/hop-gui/perspectives.html             |   19 -
 manual/1.1.0/hop-gui/shortcuts.html                |   19 -
 manual/1.1.0/hop-run/index.html                    |   38 -
 manual/1.1.0/hop-search/index.html                 |   19 -
 manual/1.1.0/hop-server/async-web-service.html     |   29 -
 manual/1.1.0/hop-server/index.html                 |  192 -
 manual/1.1.0/hop-server/rest-api.html              |  145 -
 manual/1.1.0/hop-server/web-service.html           |   27 -
 .../hop-tools/hop-conf/hop-conf-cloud-aws-s3.html  |   19 -
 .../hop-conf-cloud-azure-blob-storage.html         |   25 -
 .../hop-conf-cloud-google-cloud-storage.html       |   20 -
 .../hop-conf/hop-conf-cloud-google-drive.html      |   23 -
 .../hop-tools/hop-conf/hop-conf-projects.html      |   52 -
 .../hop-tools/hop-conf/hop-conf-run-hpl-hwf.html   |   46 -
 manual/1.1.0/hop-tools/hop-conf/hop-conf.html      |  224 -
 manual/1.1.0/hop-tools/hop-encrypt.html            |   28 -
 manual/1.1.0/hop-tools/hop-import.html             |   72 -
 manual/1.1.0/hop-tools/hop-search.html             |   45 -
 manual/1.1.0/hop-tools/index.html                  |   19 -
 manual/1.1.0/hop-usps.html                         |   19 -
 manual/1.1.0/image-testpage.html                   |   19 -
 manual/1.1.0/index.html                            |   19 -
 manual/1.1.0/logging/logging-basics.html           |   19 -
 manual/1.1.0/logging/logging-reflection.html       |   19 -
 .../1.1.0/metadata-types/beam-file-definition.html |   19 -
 .../cassandra/cassandra-connection.html            |   19 -
 manual/1.1.0/metadata-types/data-set.html          |   19 -
 manual/1.1.0/metadata-types/hop-server.html        |   19 -
 manual/1.1.0/metadata-types/index.html             |   19 -
 .../1.1.0/metadata-types/mongodb-connection.html   |   19 -
 .../metadata-types/neo4j/neo4j-connection.html     |   19 -
 .../metadata-types/neo4j/neo4j-graphmodel.html     |   19 -
 manual/1.1.0/metadata-types/partition-schema.html  |   19 -
 manual/1.1.0/metadata-types/pipeline-log.html      |   19 -
 manual/1.1.0/metadata-types/pipeline-probe.html    |   19 -
 .../1.1.0/metadata-types/pipeline-run-config.html  |   19 -
 .../1.1.0/metadata-types/pipeline-unit-test.html   |   19 -
 manual/1.1.0/metadata-types/rdbms-connection.html  |   19 -
 manual/1.1.0/metadata-types/splunk-connection.html |   19 -
 manual/1.1.0/metadata-types/workflow-log.html      |   19 -
 .../1.1.0/metadata-types/workflow-run-config.html  |   19 -
 manual/1.1.0/password/passwords.html               |   37 -
 manual/1.1.0/password/passwords/aespasswords.html  |   26 -
 .../pipeline/beam/getting-started-with-beam.html   |   19 -
 manual/1.1.0/pipeline/create-pipeline.html         |   19 -
 manual/1.1.0/pipeline/errorhandling.html           |   19 -
 manual/1.1.0/pipeline/hop-pipeline-editor.html     |   19 -
 manual/1.1.0/pipeline/metadata-injection.html      |   19 -
 manual/1.1.0/pipeline/partitioning.html            |   19 -
 .../beam-dataflow-pipeline-engine.html             |   19 -
 .../beam-direct-pipeline-engine.html               |   19 -
 .../beam-flink-pipeline-engine.html                |   26 -
 .../beam-spark-pipeline-engine.html                |   26 -
 .../native-local-pipeline-engine.html              |   19 -
 .../native-remote-pipeline-engine.html             |   19 -
 .../pipeline-run-configurations.html               |   19 -
 manual/1.1.0/pipeline/pipeline-unit-testing.html   |   34 -
 manual/1.1.0/pipeline/pipelines.html               |   19 -
 .../1.1.0/pipeline/run-preview-debug-pipeline.html |   19 -
 manual/1.1.0/pipeline/transforms.html              |   19 -
 manual/1.1.0/pipeline/transforms/abort.html        |   19 -
 manual/1.1.0/pipeline/transforms/addchecksum.html  |   19 -
 manual/1.1.0/pipeline/transforms/addconstant.html  |   19 -
 .../transforms/addfieldschangesequence.html        |   19 -
 manual/1.1.0/pipeline/transforms/addsequence.html  |   19 -
 manual/1.1.0/pipeline/transforms/addxml.html       |   19 -
 .../1.1.0/pipeline/transforms/analyticquery.html   |   42 -
 manual/1.1.0/pipeline/transforms/apache-tika.html  |   19 -
 manual/1.1.0/pipeline/transforms/append.html       |   19 -
 manual/1.1.0/pipeline/transforms/avro-decode.html  |   19 -
 .../1.1.0/pipeline/transforms/avro-file-input.html |   19 -
 .../transforms/azure-event-hubs-listener.html      |   19 -
 .../transforms/azure-event-hubs-writer.html        |   19 -
 .../pipeline/transforms/beambigqueryinput.html     |   19 -
 .../pipeline/transforms/beambigqueryoutput.html    |   19 -
 .../pipeline/transforms/beambigtableinput.html     |   19 -
 .../pipeline/transforms/beambigtableoutput.html    |   19 -
 .../pipeline/transforms/beamgcppublisher.html      |   19 -
 .../pipeline/transforms/beamgcpsubscriber.html     |   19 -
 manual/1.1.0/pipeline/transforms/beaminput.html    |   19 -
 .../pipeline/transforms/beamkafkaconsume.html      |   19 -
 .../pipeline/transforms/beamkafkaproduce.html      |   19 -
 manual/1.1.0/pipeline/transforms/beamoutput.html   |   19 -
 .../1.1.0/pipeline/transforms/beamtimestamp.html   |   19 -
 manual/1.1.0/pipeline/transforms/beamwindow.html   |   19 -
 .../pipeline/transforms/blockingtransform.html     |   19 -
 .../transforms/blockuntiltransformsfinish.html     |   19 -
 manual/1.1.0/pipeline/transforms/calculator.html   |   19 -
 manual/1.1.0/pipeline/transforms/calldbproc.html   |   19 -
 .../1.1.0/pipeline/transforms/cassandra-input.html |   19 -
 .../pipeline/transforms/cassandra-output.html      |   19 -
 .../pipeline/transforms/changefileencoding.html    |   19 -
 .../1.1.0/pipeline/transforms/checkfilelocked.html |   19 -
 .../transforms/checkwebserviceavailable.html       |   19 -
 manual/1.1.0/pipeline/transforms/clonerow.html     |   19 -
 manual/1.1.0/pipeline/transforms/closure.html      |   19 -
 manual/1.1.0/pipeline/transforms/coalesce.html     |   19 -
 manual/1.1.0/pipeline/transforms/columnexists.html |   19 -
 .../pipeline/transforms/combinationlookup.html     |   19 -
 manual/1.1.0/pipeline/transforms/concatfields.html |   19 -
 .../pipeline/transforms/copyrowstoresult.html      |   19 -
 .../pipeline/transforms/creditcardvalidator.html   |   19 -
 manual/1.1.0/pipeline/transforms/csvinput.html     |   19 -
 manual/1.1.0/pipeline/transforms/databasejoin.html |   23 -
 .../1.1.0/pipeline/transforms/databaselookup.html  |   19 -
 manual/1.1.0/pipeline/transforms/datagrid.html     |   19 -
 manual/1.1.0/pipeline/transforms/delay.html        |   19 -
 manual/1.1.0/pipeline/transforms/delete.html       |   19 -
 .../pipeline/transforms/detectemptystream.html     |   19 -
 .../1.1.0/pipeline/transforms/dimensionlookup.html |   19 -
 manual/1.1.0/pipeline/transforms/dummy.html        |   19 -
 .../1.1.0/pipeline/transforms/dynamicsqlrow.html   |   19 -
 manual/1.1.0/pipeline/transforms/edi2xml.html      |   28 -
 manual/1.1.0/pipeline/transforms/emailinput.html   |   19 -
 .../pipeline/transforms/enhancedjsonoutput.html    |   63 -
 manual/1.1.0/pipeline/transforms/excelinput.html   |   19 -
 manual/1.1.0/pipeline/transforms/excelwriter.html  |   19 -
 manual/1.1.0/pipeline/transforms/execprocess.html  |   19 -
 manual/1.1.0/pipeline/transforms/execsql.html      |   19 -
 manual/1.1.0/pipeline/transforms/execsqlrow.html   |   19 -
 manual/1.1.0/pipeline/transforms/exectests.html    |   19 -
 manual/1.1.0/pipeline/transforms/fake.html         |   19 -
 manual/1.1.0/pipeline/transforms/fileexists.html   |   19 -
 manual/1.1.0/pipeline/transforms/filemetadata.html |   19 -
 .../1.1.0/pipeline/transforms/filesfromresult.html |   19 -
 .../1.1.0/pipeline/transforms/filestoresult.html   |   19 -
 manual/1.1.0/pipeline/transforms/filterrows.html   |   23 -
 manual/1.1.0/pipeline/transforms/fuzzymatch.html   |   19 -
 .../pipeline/transforms/generaterandomvalue.html   |   19 -
 .../1.1.0/pipeline/transforms/getdatafromxml.html  |   19 -
 manual/1.1.0/pipeline/transforms/getfilenames.html |   19 -
 .../pipeline/transforms/getfilesrowcount.html      |   19 -
 .../pipeline/transforms/getrecordsfromstream.html  |   19 -
 .../pipeline/transforms/getrowsfromresult.html     |   19 -
 .../pipeline/transforms/getserversequence.html     |   60 -
 .../1.1.0/pipeline/transforms/getsubfolders.html   |   19 -
 .../1.1.0/pipeline/transforms/getsystemdata.html   |   19 -
 .../1.1.0/pipeline/transforms/gettablenames.html   |   19 -
 manual/1.1.0/pipeline/transforms/getvariable.html  |   19 -
 manual/1.1.0/pipeline/transforms/groupby.html      |   19 -
 manual/1.1.0/pipeline/transforms/http.html         |   19 -
 manual/1.1.0/pipeline/transforms/httppost.html     |   19 -
 .../1.1.0/pipeline/transforms/identifylastrow.html |   19 -
 manual/1.1.0/pipeline/transforms/ifnull.html       |   19 -
 manual/1.1.0/pipeline/transforms/injector.html     |   19 -
 manual/1.1.0/pipeline/transforms/insertupdate.html |   19 -
 manual/1.1.0/pipeline/transforms/javafilter.html   |   22 -
 manual/1.1.0/pipeline/transforms/javascript.html   |   40 -
 manual/1.1.0/pipeline/transforms/joinrows.html     |   19 -
 manual/1.1.0/pipeline/transforms/jsoninput.html    |   19 -
 manual/1.1.0/pipeline/transforms/jsonoutput.html   |   82 -
 .../1.1.0/pipeline/transforms/kafkaconsumer.html   |   19 -
 .../1.1.0/pipeline/transforms/kafkaproducer.html   |   19 -
 manual/1.1.0/pipeline/transforms/ldapinput.html    |   19 -
 manual/1.1.0/pipeline/transforms/ldapoutput.html   |   19 -
 .../1.1.0/pipeline/transforms/loadfileinput.html   |   19 -
 manual/1.1.0/pipeline/transforms/mail.html         |   19 -
 .../1.1.0/pipeline/transforms/mailvalidator.html   |   19 -
 .../1.1.0/pipeline/transforms/mapping-input.html   |   19 -
 .../1.1.0/pipeline/transforms/mapping-output.html  |   19 -
 manual/1.1.0/pipeline/transforms/memgroupby.html   |   19 -
 manual/1.1.0/pipeline/transforms/mergejoin.html    |   19 -
 manual/1.1.0/pipeline/transforms/mergerows.html    |   19 -
 .../1.1.0/pipeline/transforms/metadata-input.html  |   19 -
 manual/1.1.0/pipeline/transforms/metainject.html   |   19 -
 .../1.1.0/pipeline/transforms/metastructure.html   |   19 -
 .../pipeline/transforms/monetdbbulkloader.html     |   19 -
 manual/1.1.0/pipeline/transforms/mongodbinput.html |   19 -
 .../1.1.0/pipeline/transforms/mongodboutput.html   |   29 -
 manual/1.1.0/pipeline/transforms/multimerge.html   |   19 -
 manual/1.1.0/pipeline/transforms/neo4j-cypher.html |   19 -
 manual/1.1.0/pipeline/transforms/neo4j-gencsv.html |   19 -
 .../pipeline/transforms/neo4j-getloginfo.html      |   19 -
 .../pipeline/transforms/neo4j-graphoutput.html     |   19 -
 manual/1.1.0/pipeline/transforms/neo4j-import.html |   19 -
 manual/1.1.0/pipeline/transforms/neo4j-output.html |   19 -
 .../pipeline/transforms/neo4j-split-graph.html     |   19 -
 manual/1.1.0/pipeline/transforms/nullif.html       |   19 -
 manual/1.1.0/pipeline/transforms/numberrange.html  |   19 -
 .../pipeline/transforms/parquet-file-input.html    |   19 -
 .../pipeline/transforms/parquet-file-output.html   |   19 -
 .../pipeline/transforms/pgpdecryptstream.html      |   19 -
 .../pipeline/transforms/pgpencryptstream.html      |   19 -
 .../pipeline/transforms/pipelineexecutor.html      |   19 -
 .../pipeline/transforms/postgresbulkloader.html    |   19 -
 manual/1.1.0/pipeline/transforms/processfiles.html |   19 -
 .../1.1.0/pipeline/transforms/propertyinput.html   |   19 -
 .../1.1.0/pipeline/transforms/propertyoutput.html  |   19 -
 manual/1.1.0/pipeline/transforms/regexeval.html    |   19 -
 .../1.1.0/pipeline/transforms/replacestring.html   |   19 -
 .../pipeline/transforms/reservoirsampling.html     |   19 -
 manual/1.1.0/pipeline/transforms/rest.html         |   19 -
 .../1.1.0/pipeline/transforms/rowdenormaliser.html |   19 -
 manual/1.1.0/pipeline/transforms/rowflattener.html |   19 -
 manual/1.1.0/pipeline/transforms/rowgenerator.html |   19 -
 .../1.1.0/pipeline/transforms/rownormaliser.html   |   19 -
 manual/1.1.0/pipeline/transforms/runssh.html       |   19 -
 .../pipeline/transforms/salesforce-connection.html |   19 -
 .../pipeline/transforms/salesforce-fields.html     |   19 -
 .../pipeline/transforms/salesforce-settings.html   |   19 -
 .../pipeline/transforms/salesforcedelete.html      |   19 -
 .../1.1.0/pipeline/transforms/salesforceinput.html |   19 -
 .../pipeline/transforms/salesforceinsert.html      |   19 -
 .../pipeline/transforms/salesforceupdate.html      |   19 -
 .../pipeline/transforms/salesforceupsert.html      |   19 -
 manual/1.1.0/pipeline/transforms/samplerows.html   |   19 -
 manual/1.1.0/pipeline/transforms/sasinput.html     |   19 -
 manual/1.1.0/pipeline/transforms/selectvalues.html |   19 -
 .../transforms/serialize-de-from-file.html         |   19 -
 .../pipeline/transforms/serialize-to-file.html     |   19 -
 manual/1.1.0/pipeline/transforms/serverstatus.html |   19 -
 .../pipeline/transforms/setvalueconstant.html      |   19 -
 .../1.1.0/pipeline/transforms/setvaluefield.html   |   19 -
 manual/1.1.0/pipeline/transforms/setvariable.html  |   19 -
 .../1.1.0/pipeline/transforms/simple-mapping.html  |   19 -
 manual/1.1.0/pipeline/transforms/sort.html         |   19 -
 manual/1.1.0/pipeline/transforms/sortedmerge.html  |   19 -
 manual/1.1.0/pipeline/transforms/splitfields.html  |   19 -
 .../pipeline/transforms/splitfieldtorows.html      |   19 -
 manual/1.1.0/pipeline/transforms/splunkinput.html  |   19 -
 .../1.1.0/pipeline/transforms/sqlfileoutput.html   |   19 -
 .../1.1.0/pipeline/transforms/sstable-output.html  |   19 -
 .../transforms/standardizephonenumber.html         |   19 -
 manual/1.1.0/pipeline/transforms/streamlookup.html |   19 -
 .../pipeline/transforms/streamschemamerge.html     |   19 -
 manual/1.1.0/pipeline/transforms/stringcut.html    |   19 -
 .../pipeline/transforms/stringoperations.html      |   19 -
 manual/1.1.0/pipeline/transforms/switchcase.html   |   19 -
 .../pipeline/transforms/synchronizeaftermerge.html |   19 -
 manual/1.1.0/pipeline/transforms/tablecompare.html |   19 -
 manual/1.1.0/pipeline/transforms/tableexists.html  |   19 -
 manual/1.1.0/pipeline/transforms/tableinput.html   |   19 -
 manual/1.1.0/pipeline/transforms/tableoutput.html  |   27 -
 manual/1.1.0/pipeline/transforms/terafast.html     |   19 -
 .../1.1.0/pipeline/transforms/textfileinput.html   |   19 -
 .../1.1.0/pipeline/transforms/textfileoutput.html  |   19 -
 .../pipeline/transforms/tokenreplacement.html      |   19 -
 manual/1.1.0/pipeline/transforms/uniquerows.html   |   19 -
 .../pipeline/transforms/uniquerowsbyhashset.html   |   19 -
 manual/1.1.0/pipeline/transforms/update.html       |   19 -
 .../pipeline/transforms/userdefinedjavaclass.html  |   96 -
 .../transforms/userdefinedjavaexpression.html      |   20 -
 manual/1.1.0/pipeline/transforms/valuemapper.html  |   21 -
 manual/1.1.0/pipeline/transforms/webservices.html  |   19 -
 .../pipeline/transforms/workflowexecutor.html      |   19 -
 manual/1.1.0/pipeline/transforms/writetolog.html   |   34 -
 .../1.1.0/pipeline/transforms/xmlinputstream.html  |   19 -
 manual/1.1.0/pipeline/transforms/xmljoin.html      |   19 -
 manual/1.1.0/pipeline/transforms/xmloutput.html    |   19 -
 manual/1.1.0/pipeline/transforms/xsdvalidator.html |   19 -
 manual/1.1.0/pipeline/transforms/xslt.html         |   19 -
 manual/1.1.0/pipeline/transforms/yamlinput.html    |   19 -
 manual/1.1.0/pipeline/transforms/zipfile.html      |   19 -
 manual/1.1.0/plugins/external-plugins.html         |   19 -
 manual/1.1.0/plugins/import/kettle-import.html     |   19 -
 manual/1.1.0/plugins/plugins.html                  |   19 -
 manual/1.1.0/plugins/projects.html                 |   19 -
 manual/1.1.0/plugins/projects/projects.html        |  122 -
 manual/1.1.0/projects/advanced.html                |   95 -
 manual/1.1.0/projects/index.html                   |   19 -
 manual/1.1.0/projects/metadata.html                |   42 -
 manual/1.1.0/projects/projects-environments.html   |   19 -
 manual/1.1.0/protips/index.html                    |   19 -
 manual/1.1.0/samples/samples.html                  |   19 -
 .../1.1.0/snippets/best-practices/governance.html  |   19 -
 manual/1.1.0/snippets/best-practices/logging.html  |   19 -
 manual/1.1.0/snippets/best-practices/loops.html    |   19 -
 manual/1.1.0/snippets/best-practices/mappings.html |   19 -
 .../best-practices/metadata-injection.html         |   19 -
 .../best-practices/naming-conventions.html         |   19 -
 .../best-practices/performance-basics.html         |   19 -
 .../snippets/best-practices/size-matters.html      |   19 -
 .../1.1.0/snippets/best-practices/variables.html   |   19 -
 manual/1.1.0/snippets/hop-concepts/action.html     |   19 -
 .../1.1.0/snippets/hop-concepts/environment.html   |   19 -
 .../hop-concepts/hop-projects-environments.html    |   19 -
 manual/1.1.0/snippets/hop-concepts/hop.html        |   19 -
 manual/1.1.0/snippets/hop-concepts/item-types.html |   19 -
 .../1.1.0/snippets/hop-concepts/lazy-loading.html  |   19 -
 manual/1.1.0/snippets/hop-concepts/metadata.html   |   19 -
 manual/1.1.0/snippets/hop-concepts/pipeline.html   |   19 -
 manual/1.1.0/snippets/hop-concepts/project.html    |   19 -
 manual/1.1.0/snippets/hop-concepts/transform.html  |   19 -
 manual/1.1.0/snippets/hop-concepts/workflow.html   |   19 -
 manual/1.1.0/snippets/hop-tools/hop-conf.html      |   19 -
 manual/1.1.0/snippets/hop-tools/hop-encrypt.html   |   19 -
 manual/1.1.0/snippets/hop-tools/hop-gui.html       |   19 -
 manual/1.1.0/snippets/hop-tools/hop-run.html       |   19 -
 manual/1.1.0/snippets/hop-tools/hop-search.html    |   19 -
 manual/1.1.0/snippets/hop-tools/hop-server.html    |   19 -
 manual/1.1.0/snippets/hop-tools/hop-tools.html     |   19 -
 .../1.1.0/snippets/hop-tools/hop-translator.html   |   19 -
 manual/1.1.0/technology/azure/index.html           |   19 -
 manual/1.1.0/technology/cassandra/index.html       |   19 -
 manual/1.1.0/technology/google/index.html          |   19 -
 manual/1.1.0/technology/neo4j/index.html           |   19 -
 .../technology/neo4j/working-with-neo4j-data.html  |   23 -
 manual/1.1.0/technology/technology.html            |   19 -
 manual/1.1.0/variables.html                        |   23 -
 manual/1.1.0/vfs.html                              |   19 -
 manual/1.1.0/vfs/aws-s3-vfs.html                   |   21 -
 manual/1.1.0/vfs/azure-blob-storage-vfs.html       |   31 -
 manual/1.1.0/vfs/dropbox-vfs.html                  |   20 -
 manual/1.1.0/vfs/google-cloud-storage-vfs.html     |   24 -
 manual/1.1.0/vfs/google-drive-vfs.html             |   29 -
 manual/1.1.0/workflow/actions.html                 |   19 -
 manual/1.1.0/workflow/actions/abort.html           |   19 -
 .../1.1.0/workflow/actions/addresultfilenames.html |   19 -
 manual/1.1.0/workflow/actions/as400command.html    |   19 -
 .../1.1.0/workflow/actions/cassandra-exec-cql.html |   21 -
 .../1.1.0/workflow/actions/checkdbconnection.html  |   19 -
 manual/1.1.0/workflow/actions/checkfilelocked.html |   19 -
 manual/1.1.0/workflow/actions/columnsexist.html    |   19 -
 manual/1.1.0/workflow/actions/copyfiles.html       |   19 -
 .../workflow/actions/copymoveresultfilenames.html  |   19 -
 manual/1.1.0/workflow/actions/createfile.html      |   19 -
 manual/1.1.0/workflow/actions/createfolder.html    |   19 -
 manual/1.1.0/workflow/actions/delay.html           |   19 -
 manual/1.1.0/workflow/actions/deletefile.html      |   19 -
 manual/1.1.0/workflow/actions/deletefiles.html     |   19 -
 manual/1.1.0/workflow/actions/deletefolders.html   |   19 -
 .../workflow/actions/deleteresultfilenames.html    |   19 -
 manual/1.1.0/workflow/actions/dostounix.html       |   19 -
 manual/1.1.0/workflow/actions/dtdvalidator.html    |   19 -
 manual/1.1.0/workflow/actions/dummy.html           |   19 -
 manual/1.1.0/workflow/actions/eval.html            |   29 -
 .../1.1.0/workflow/actions/evalfilesmetrics.html   |   19 -
 .../workflow/actions/evaluatetablecontent.html     |   19 -
 manual/1.1.0/workflow/actions/filecompare.html     |   19 -
 manual/1.1.0/workflow/actions/fileexists.html      |   19 -
 manual/1.1.0/workflow/actions/filesexist.html      |   19 -
 manual/1.1.0/workflow/actions/folderisempty.html   |   19 -
 manual/1.1.0/workflow/actions/folderscompare.html  |   19 -
 manual/1.1.0/workflow/actions/ftp.html             |   19 -
 manual/1.1.0/workflow/actions/ftpdelete.html       |   19 -
 manual/1.1.0/workflow/actions/ftpput.html          |   19 -
 manual/1.1.0/workflow/actions/getpop.html          |   19 -
 manual/1.1.0/workflow/actions/http.html            |   19 -
 manual/1.1.0/workflow/actions/mail.html            |   19 -
 manual/1.1.0/workflow/actions/mailvalidator.html   |   19 -
 manual/1.1.0/workflow/actions/movefiles.html       |   19 -
 manual/1.1.0/workflow/actions/msgboxinfo.html      |   20 -
 manual/1.1.0/workflow/actions/mssqlbulkload.html   |   19 -
 manual/1.1.0/workflow/actions/mysqlbulkfile.html   |   19 -
 manual/1.1.0/workflow/actions/mysqlbulkload.html   |   19 -
 .../workflow/actions/neo4j-checkconnections.html   |   19 -
 .../1.1.0/workflow/actions/neo4j-constraint.html   |   19 -
 .../1.1.0/workflow/actions/neo4j-cypherscript.html |   22 -
 manual/1.1.0/workflow/actions/neo4j-index.html     |   19 -
 manual/1.1.0/workflow/actions/pgpdecryptfiles.html |   19 -
 manual/1.1.0/workflow/actions/pgpencryptfiles.html |   19 -
 manual/1.1.0/workflow/actions/pgpverify.html       |   19 -
 manual/1.1.0/workflow/actions/ping.html            |   19 -
 manual/1.1.0/workflow/actions/pipeline.html        |   19 -
 manual/1.1.0/workflow/actions/repeat-end.html      |   19 -
 manual/1.1.0/workflow/actions/repeat.html          |   19 -
 .../1.1.0/workflow/actions/runpipelinetests.html   |   19 -
 .../workflow/actions/sendnagiospassivecheck.html   |   19 -
 manual/1.1.0/workflow/actions/setvariables.html    |   19 -
 manual/1.1.0/workflow/actions/sftp.html            |   21 -
 manual/1.1.0/workflow/actions/sftpput.html         |   20 -
 manual/1.1.0/workflow/actions/shell.html           |   19 -
 manual/1.1.0/workflow/actions/simpleeval.html      |   19 -
 manual/1.1.0/workflow/actions/snmptrap.html        |   19 -
 manual/1.1.0/workflow/actions/sql.html             |   19 -
 manual/1.1.0/workflow/actions/start.html           |   19 -
 manual/1.1.0/workflow/actions/success.html         |   19 -
 manual/1.1.0/workflow/actions/tableexists.html     |   19 -
 manual/1.1.0/workflow/actions/telnet.html          |   19 -
 manual/1.1.0/workflow/actions/truncatetables.html  |   19 -
 manual/1.1.0/workflow/actions/unzip.html           |   19 -
 manual/1.1.0/workflow/actions/waitforfile.html     |   19 -
 manual/1.1.0/workflow/actions/waitforsql.html      |   19 -
 .../workflow/actions/webserviceavailable.html      |   19 -
 manual/1.1.0/workflow/actions/workflow.html        |   19 -
 manual/1.1.0/workflow/actions/writetofile.html     |   19 -
 manual/1.1.0/workflow/actions/writetolog.html      |   19 -
 manual/1.1.0/workflow/actions/xmlwellformed.html   |   19 -
 manual/1.1.0/workflow/actions/xsdvalidator.html    |   19 -
 manual/1.1.0/workflow/actions/xslt.html            |   19 -
 manual/1.1.0/workflow/actions/zipfile.html         |   19 -
 manual/1.1.0/workflow/create-workflow.html         |   19 -
 manual/1.1.0/workflow/run-debug-workflow.html      |   19 -
 .../native-local-workflow-engine.html              |   19 -
 .../native-remote-workflow-engine.html             |   19 -
 .../workflow-run-configurations.html               |   19 -
 manual/1.1.0/workflow/workflows.html               |   19 -
 manual/index.html                                  |   30 +-
 manual/latest/best-practices/index.html            |    2 +-
 manual/latest/concepts.html                        |    2 +-
 manual/latest/database/databases.html              |    2 +-
 manual/latest/database/databases/as400.html        |    2 +-
 manual/latest/database/databases/cache.html        |    2 +-
 manual/latest/database/databases/clickhouse.html   |    2 +-
 manual/latest/database/databases/db2.html          |    2 +-
 manual/latest/database/databases/derby.html        |    2 +-
 manual/latest/database/databases/doris.html        |    2 +-
 manual/latest/database/databases/exasol.html       |    2 +-
 manual/latest/database/databases/firebird.html     |    2 +-
 .../latest/database/databases/googlebigquery.html  |    2 +-
 manual/latest/database/databases/greenplum.html    |    2 +-
 manual/latest/database/databases/h2.html           |    2 +-
 manual/latest/database/databases/hypersonic.html   |    2 +-
 manual/latest/database/databases/infinidb.html     |    2 +-
 manual/latest/database/databases/infobright.html   |    2 +-
 manual/latest/database/databases/informix.html     |    2 +-
 manual/latest/database/databases/ingres.html       |    2 +-
 manual/latest/database/databases/interbase.html    |    2 +-
 manual/latest/database/databases/kingbasees.html   |    2 +-
 manual/latest/database/databases/mariadb.html      |    2 +-
 manual/latest/database/databases/monetdb.html      |    2 +-
 manual/latest/database/databases/mssql.html        |    2 +-
 manual/latest/database/databases/mssqlnative.html  |    2 +-
 manual/latest/database/databases/mysql.html        |    2 +-
 manual/latest/database/databases/netezza.html      |    2 +-
 manual/latest/database/databases/oracle.html       |    2 +-
 manual/latest/database/databases/oraclerdb.html    |    2 +-
 manual/latest/database/databases/postgresql.html   |    2 +-
 manual/latest/database/databases/redshift.html     |    2 +-
 manual/latest/database/databases/sapdb.html        |    2 +-
 manual/latest/database/databases/snowflake.html    |    2 +-
 manual/latest/database/databases/sqlbase.html      |    2 +-
 manual/latest/database/databases/sqlite.html       |    2 +-
 manual/latest/database/databases/sybase.html       |    2 +-
 manual/latest/database/databases/sybaseiq.html     |    2 +-
 manual/latest/database/databases/teradata.html     |    2 +-
 manual/latest/database/databases/universe.html     |    2 +-
 manual/latest/database/databases/vectorwise.html   |    2 +-
 manual/latest/database/databases/vertica.html      |    2 +-
 manual/latest/faq/faq.html                         |    2 +-
 manual/latest/getting-started/hop-concepts.html    |    2 +-
 .../getting-started/hop-download-install.html      |    2 +-
 .../latest/getting-started/hop-gui-pipelines.html  |    2 +-
 .../latest/getting-started/hop-gui-workflows.html  |    2 +-
 manual/latest/getting-started/hop-gui.html         |    2 +-
 manual/latest/getting-started/hop-next-steps.html  |    2 +-
 manual/latest/getting-started/hop-tools.html       |    2 +-
 manual/latest/getting-started/hop-what-is-hop.html |    2 +-
 manual/latest/getting-started/index.html           |    2 +-
 manual/latest/hop-gui/file-dialog.html             |    2 +-
 manual/latest/hop-gui/hop-gui-git.html             |    2 +-
 manual/latest/hop-gui/hop-gui-popup-dialog.html    |    2 +-
 manual/latest/hop-gui/hop-web.html                 |    4 +-
 manual/latest/hop-gui/index.html                   |    2 +-
 .../hop-gui/perspective-data-orchestration.html    |    2 +-
 .../latest/hop-gui/perspective-file-explorer.html  |    2 +-
 manual/latest/hop-gui/perspective-metadata.html    |    2 +-
 manual/latest/hop-gui/perspective-neo4j.html       |    2 +-
 manual/latest/hop-gui/perspective-plugin.html      |    2 +-
 manual/latest/hop-gui/perspective-search.html      |    2 +-
 manual/latest/hop-gui/perspectives.html            |    2 +-
 manual/latest/hop-gui/shortcuts.html               |    2 +-
 manual/latest/hop-run/index.html                   |    4 +-
 manual/latest/hop-search/index.html                |    2 +-
 manual/latest/hop-server/async-web-service.html    |    4 +-
 manual/latest/hop-server/index.html                |    6 +-
 manual/latest/hop-server/rest-api.html             |    6 +-
 manual/latest/hop-server/web-service.html          |    4 +-
 .../hop-tools/hop-conf/hop-conf-cloud-aws-s3.html  |    2 +-
 .../hop-conf-cloud-azure-blob-storage.html         |    4 +-
 .../hop-conf-cloud-google-cloud-storage.html       |    4 +-
 .../hop-conf/hop-conf-cloud-google-drive.html      |    4 +-
 .../hop-tools/hop-conf/hop-conf-projects.html      |    4 +-
 .../hop-tools/hop-conf/hop-conf-run-hpl-hwf.html   |    4 +-
 manual/latest/hop-tools/hop-conf/hop-conf.html     |    6 +-
 manual/latest/hop-tools/hop-encrypt.html           |    4 +-
 manual/latest/hop-tools/hop-import.html            |    8 +-
 manual/latest/hop-tools/hop-search.html            |    4 +-
 manual/latest/hop-tools/index.html                 |    2 +-
 manual/latest/hop-usps.html                        |    2 +-
 .../apache-hop-web-services-docker.html            |   34 -
 manual/latest/how-to-guides/index.html             |   19 -
 manual/latest/image-testpage.html                  |    2 +-
 manual/latest/index.html                           |    2 +-
 manual/latest/logging/logging-basics.html          |    2 +-
 manual/latest/logging/logging-reflection.html      |    2 +-
 .../metadata-types/beam-file-definition.html       |    2 +-
 .../cassandra/cassandra-connection.html            |    2 +-
 manual/latest/metadata-types/data-set.html         |    2 +-
 manual/latest/metadata-types/hop-server.html       |    2 +-
 manual/latest/metadata-types/index.html            |    2 +-
 .../latest/metadata-types/mongodb-connection.html  |    2 +-
 .../metadata-types/neo4j/neo4j-connection.html     |    2 +-
 .../metadata-types/neo4j/neo4j-graphmodel.html     |    2 +-
 manual/latest/metadata-types/partition-schema.html |    2 +-
 manual/latest/metadata-types/pipeline-log.html     |    2 +-
 manual/latest/metadata-types/pipeline-probe.html   |    2 +-
 .../latest/metadata-types/pipeline-run-config.html |    2 +-
 .../latest/metadata-types/pipeline-unit-test.html  |    2 +-
 manual/latest/metadata-types/rdbms-connection.html |    2 +-
 .../latest/metadata-types/splunk-connection.html   |    2 +-
 manual/latest/metadata-types/workflow-log.html     |    2 +-
 .../latest/metadata-types/workflow-run-config.html |    2 +-
 manual/latest/password/passwords.html              |    4 +-
 manual/latest/password/passwords/aespasswords.html |    4 +-
 .../pipeline/beam/getting-started-with-beam.html   |    2 +-
 manual/latest/pipeline/create-pipeline.html        |    2 +-
 manual/latest/pipeline/errorhandling.html          |    2 +-
 manual/latest/pipeline/hop-pipeline-editor.html    |    2 +-
 manual/latest/pipeline/metadata-injection.html     |    2 +-
 manual/latest/pipeline/partitioning.html           |    2 +-
 .../beam-dataflow-pipeline-engine.html             |    2 +-
 .../beam-direct-pipeline-engine.html               |    2 +-
 .../beam-flink-pipeline-engine.html                |    4 +-
 .../beam-spark-pipeline-engine.html                |    4 +-
 .../native-local-pipeline-engine.html              |    2 +-
 .../native-remote-pipeline-engine.html             |    2 +-
 .../pipeline-run-configurations.html               |    2 +-
 manual/latest/pipeline/pipeline-unit-testing.html  |    4 +-
 manual/latest/pipeline/pipelines.html              |    2 +-
 .../pipeline/run-preview-debug-pipeline.html       |    2 +-
 manual/latest/pipeline/transforms.html             |    2 +-
 manual/latest/pipeline/transforms/abort.html       |    2 +-
 manual/latest/pipeline/transforms/addchecksum.html |    2 +-
 manual/latest/pipeline/transforms/addconstant.html |    2 +-
 .../transforms/addfieldschangesequence.html        |    2 +-
 manual/latest/pipeline/transforms/addsequence.html |    2 +-
 manual/latest/pipeline/transforms/addxml.html      |    2 +-
 .../latest/pipeline/transforms/analyticquery.html  |    4 +-
 manual/latest/pipeline/transforms/apache-tika.html |    2 +-
 manual/latest/pipeline/transforms/append.html      |    2 +-
 manual/latest/pipeline/transforms/avro-decode.html |    2 +-
 .../pipeline/transforms/avro-file-input.html       |    2 +-
 .../transforms/azure-event-hubs-listener.html      |    2 +-
 .../transforms/azure-event-hubs-writer.html        |    2 +-
 .../pipeline/transforms/beambigqueryinput.html     |    2 +-
 .../pipeline/transforms/beambigqueryoutput.html    |    2 +-
 .../pipeline/transforms/beambigtableinput.html     |    2 +-
 .../pipeline/transforms/beambigtableoutput.html    |    2 +-
 .../pipeline/transforms/beamgcppublisher.html      |    2 +-
 .../pipeline/transforms/beamgcpsubscriber.html     |    2 +-
 manual/latest/pipeline/transforms/beaminput.html   |    2 +-
 .../pipeline/transforms/beamkafkaconsume.html      |    2 +-
 .../pipeline/transforms/beamkafkaproduce.html      |    2 +-
 manual/latest/pipeline/transforms/beamoutput.html  |    2 +-
 .../latest/pipeline/transforms/beamtimestamp.html  |    2 +-
 manual/latest/pipeline/transforms/beamwindow.html  |    2 +-
 .../pipeline/transforms/blockingtransform.html     |    2 +-
 .../transforms/blockuntiltransformsfinish.html     |    2 +-
 manual/latest/pipeline/transforms/calculator.html  |    2 +-
 manual/latest/pipeline/transforms/calldbproc.html  |    2 +-
 .../pipeline/transforms/cassandra-input.html       |    2 +-
 .../pipeline/transforms/cassandra-output.html      |    2 +-
 .../pipeline/transforms/changefileencoding.html    |    2 +-
 .../pipeline/transforms/checkfilelocked.html       |    2 +-
 .../transforms/checkwebserviceavailable.html       |    2 +-
 manual/latest/pipeline/transforms/clonerow.html    |    2 +-
 manual/latest/pipeline/transforms/closure.html     |    2 +-
 manual/latest/pipeline/transforms/coalesce.html    |    2 +-
 .../latest/pipeline/transforms/columnexists.html   |    2 +-
 .../pipeline/transforms/combinationlookup.html     |    2 +-
 .../latest/pipeline/transforms/concatfields.html   |    2 +-
 .../pipeline/transforms/copyrowstoresult.html      |    2 +-
 .../pipeline/transforms/creditcardvalidator.html   |    2 +-
 manual/latest/pipeline/transforms/csvinput.html    |    2 +-
 .../latest/pipeline/transforms/databasejoin.html   |    4 +-
 .../latest/pipeline/transforms/databaselookup.html |    2 +-
 manual/latest/pipeline/transforms/datagrid.html    |    2 +-
 manual/latest/pipeline/transforms/delay.html       |    2 +-
 manual/latest/pipeline/transforms/delete.html      |    2 +-
 .../pipeline/transforms/detectemptystream.html     |    2 +-
 .../pipeline/transforms/dimensionlookup.html       |    2 +-
 manual/latest/pipeline/transforms/dummy.html       |    2 +-
 .../latest/pipeline/transforms/dynamicsqlrow.html  |    2 +-
 manual/latest/pipeline/transforms/edi2xml.html     |    4 +-
 manual/latest/pipeline/transforms/emailinput.html  |    2 +-
 .../pipeline/transforms/enhancedjsonoutput.html    |    4 +-
 manual/latest/pipeline/transforms/excelinput.html  |    2 +-
 manual/latest/pipeline/transforms/excelwriter.html |    2 +-
 manual/latest/pipeline/transforms/execprocess.html |    2 +-
 manual/latest/pipeline/transforms/execsql.html     |    2 +-
 manual/latest/pipeline/transforms/execsqlrow.html  |    2 +-
 manual/latest/pipeline/transforms/exectests.html   |    2 +-
 manual/latest/pipeline/transforms/fake.html        |    2 +-
 manual/latest/pipeline/transforms/fileexists.html  |    2 +-
 .../latest/pipeline/transforms/filemetadata.html   |    2 +-
 .../pipeline/transforms/filesfromresult.html       |    2 +-
 .../latest/pipeline/transforms/filestoresult.html  |    2 +-
 manual/latest/pipeline/transforms/filterrows.html  |    4 +-
 manual/latest/pipeline/transforms/fuzzymatch.html  |    2 +-
 .../pipeline/transforms/generaterandomvalue.html   |    2 +-
 .../latest/pipeline/transforms/getdatafromxml.html |    2 +-
 .../latest/pipeline/transforms/getfilenames.html   |    2 +-
 .../pipeline/transforms/getfilesrowcount.html      |    2 +-
 .../pipeline/transforms/getrecordsfromstream.html  |    2 +-
 .../pipeline/transforms/getrowsfromresult.html     |    2 +-
 .../pipeline/transforms/getserversequence.html     |    4 +-
 .../latest/pipeline/transforms/getsubfolders.html  |    2 +-
 .../latest/pipeline/transforms/getsystemdata.html  |    2 +-
 .../latest/pipeline/transforms/gettablenames.html  |    2 +-
 manual/latest/pipeline/transforms/getvariable.html |    2 +-
 manual/latest/pipeline/transforms/groupby.html     |    2 +-
 manual/latest/pipeline/transforms/http.html        |    2 +-
 manual/latest/pipeline/transforms/httppost.html    |    2 +-
 .../pipeline/transforms/identifylastrow.html       |    2 +-
 manual/latest/pipeline/transforms/ifnull.html      |    2 +-
 manual/latest/pipeline/transforms/injector.html    |    2 +-
 .../latest/pipeline/transforms/insertupdate.html   |    2 +-
 manual/latest/pipeline/transforms/javafilter.html  |    4 +-
 manual/latest/pipeline/transforms/javascript.html  |    4 +-
 manual/latest/pipeline/transforms/joinrows.html    |    2 +-
 manual/latest/pipeline/transforms/jsoninput.html   |    2 +-
 manual/latest/pipeline/transforms/jsonoutput.html  |    4 +-
 .../latest/pipeline/transforms/kafkaconsumer.html  |    2 +-
 .../latest/pipeline/transforms/kafkaproducer.html  |    2 +-
 manual/latest/pipeline/transforms/ldapinput.html   |    2 +-
 manual/latest/pipeline/transforms/ldapoutput.html  |    2 +-
 .../latest/pipeline/transforms/loadfileinput.html  |    2 +-
 manual/latest/pipeline/transforms/mail.html        |    2 +-
 .../latest/pipeline/transforms/mailvalidator.html  |    2 +-
 .../latest/pipeline/transforms/mapping-input.html  |    2 +-
 .../latest/pipeline/transforms/mapping-output.html |    2 +-
 manual/latest/pipeline/transforms/memgroupby.html  |    2 +-
 manual/latest/pipeline/transforms/mergejoin.html   |    2 +-
 manual/latest/pipeline/transforms/mergerows.html   |    2 +-
 .../latest/pipeline/transforms/metadata-input.html |    2 +-
 manual/latest/pipeline/transforms/metainject.html  |    2 +-
 .../latest/pipeline/transforms/metastructure.html  |    2 +-
 .../pipeline/transforms/monetdbbulkloader.html     |    2 +-
 .../latest/pipeline/transforms/mongodbinput.html   |    2 +-
 .../latest/pipeline/transforms/mongodboutput.html  |    6 +-
 manual/latest/pipeline/transforms/multimerge.html  |    2 +-
 .../latest/pipeline/transforms/neo4j-cypher.html   |    2 +-
 .../latest/pipeline/transforms/neo4j-gencsv.html   |    2 +-
 .../pipeline/transforms/neo4j-getloginfo.html      |    2 +-
 .../pipeline/transforms/neo4j-graphoutput.html     |    2 +-
 .../latest/pipeline/transforms/neo4j-import.html   |    2 +-
 .../latest/pipeline/transforms/neo4j-output.html   |    2 +-
 .../pipeline/transforms/neo4j-split-graph.html     |    2 +-
 manual/latest/pipeline/transforms/nullif.html      |    2 +-
 manual/latest/pipeline/transforms/numberrange.html |    2 +-
 .../pipeline/transforms/parquet-file-input.html    |    2 +-
 .../pipeline/transforms/parquet-file-output.html   |    2 +-
 .../pipeline/transforms/pgpdecryptstream.html      |    2 +-
 .../pipeline/transforms/pgpencryptstream.html      |    2 +-
 .../pipeline/transforms/pipelineexecutor.html      |    2 +-
 .../pipeline/transforms/postgresbulkloader.html    |    2 +-
 .../latest/pipeline/transforms/processfiles.html   |    2 +-
 .../latest/pipeline/transforms/propertyinput.html  |    2 +-
 .../latest/pipeline/transforms/propertyoutput.html |    2 +-
 manual/latest/pipeline/transforms/regexeval.html   |    2 +-
 .../latest/pipeline/transforms/replacestring.html  |    2 +-
 .../pipeline/transforms/reservoirsampling.html     |    2 +-
 manual/latest/pipeline/transforms/rest.html        |    2 +-
 .../pipeline/transforms/rowdenormaliser.html       |    2 +-
 .../latest/pipeline/transforms/rowflattener.html   |    2 +-
 .../latest/pipeline/transforms/rowgenerator.html   |    2 +-
 .../latest/pipeline/transforms/rownormaliser.html  |    2 +-
 manual/latest/pipeline/transforms/runssh.html      |    2 +-
 .../pipeline/transforms/salesforce-connection.html |    2 +-
 .../pipeline/transforms/salesforce-fields.html     |    2 +-
 .../pipeline/transforms/salesforce-settings.html   |    2 +-
 .../pipeline/transforms/salesforcedelete.html      |    2 +-
 .../pipeline/transforms/salesforceinput.html       |    2 +-
 .../pipeline/transforms/salesforceinsert.html      |    2 +-
 .../pipeline/transforms/salesforceupdate.html      |    2 +-
 .../pipeline/transforms/salesforceupsert.html      |    2 +-
 manual/latest/pipeline/transforms/samplerows.html  |    2 +-
 manual/latest/pipeline/transforms/sasinput.html    |    2 +-
 .../latest/pipeline/transforms/selectvalues.html   |    2 +-
 .../transforms/serialize-de-from-file.html         |    2 +-
 .../pipeline/transforms/serialize-to-file.html     |    2 +-
 .../latest/pipeline/transforms/serverstatus.html   |    2 +-
 .../pipeline/transforms/setvalueconstant.html      |    2 +-
 .../latest/pipeline/transforms/setvaluefield.html  |    2 +-
 manual/latest/pipeline/transforms/setvariable.html |    2 +-
 .../latest/pipeline/transforms/simple-mapping.html |    2 +-
 manual/latest/pipeline/transforms/sort.html        |    2 +-
 manual/latest/pipeline/transforms/sortedmerge.html |    2 +-
 manual/latest/pipeline/transforms/splitfields.html |    2 +-
 .../pipeline/transforms/splitfieldtorows.html      |    2 +-
 manual/latest/pipeline/transforms/splunkinput.html |    2 +-
 .../latest/pipeline/transforms/sqlfileoutput.html  |    2 +-
 .../latest/pipeline/transforms/sstable-output.html |    2 +-
 .../transforms/standardizephonenumber.html         |    2 +-
 .../latest/pipeline/transforms/streamlookup.html   |    2 +-
 .../pipeline/transforms/streamschemamerge.html     |    2 +-
 manual/latest/pipeline/transforms/stringcut.html   |    2 +-
 .../pipeline/transforms/stringoperations.html      |    2 +-
 manual/latest/pipeline/transforms/switchcase.html  |    2 +-
 .../pipeline/transforms/synchronizeaftermerge.html |    2 +-
 .../latest/pipeline/transforms/tablecompare.html   |    2 +-
 manual/latest/pipeline/transforms/tableexists.html |    2 +-
 manual/latest/pipeline/transforms/tableinput.html  |    2 +-
 manual/latest/pipeline/transforms/tableoutput.html |    4 +-
 manual/latest/pipeline/transforms/terafast.html    |    2 +-
 .../latest/pipeline/transforms/textfileinput.html  |    2 +-
 .../latest/pipeline/transforms/textfileoutput.html |    2 +-
 .../pipeline/transforms/tokenreplacement.html      |    2 +-
 manual/latest/pipeline/transforms/uniquerows.html  |    2 +-
 .../pipeline/transforms/uniquerowsbyhashset.html   |    2 +-
 manual/latest/pipeline/transforms/update.html      |    2 +-
 .../pipeline/transforms/userdefinedjavaclass.html  |    4 +-
 .../transforms/userdefinedjavaexpression.html      |    4 +-
 manual/latest/pipeline/transforms/valuemapper.html |    4 +-
 manual/latest/pipeline/transforms/webservices.html |    2 +-
 .../pipeline/transforms/workflowexecutor.html      |    2 +-
 manual/latest/pipeline/transforms/writetolog.html  |    4 +-
 .../latest/pipeline/transforms/xmlinputstream.html |    2 +-
 manual/latest/pipeline/transforms/xmljoin.html     |    2 +-
 manual/latest/pipeline/transforms/xmloutput.html   |    2 +-
 .../latest/pipeline/transforms/xsdvalidator.html   |    2 +-
 manual/latest/pipeline/transforms/xslt.html        |    2 +-
 manual/latest/pipeline/transforms/yamlinput.html   |    2 +-
 manual/latest/pipeline/transforms/zipfile.html     |    2 +-
 manual/latest/plugins/external-plugins.html        |    2 +-
 manual/latest/plugins/import/kettle-import.html    |    2 +-
 manual/latest/plugins/plugins.html                 |    2 +-
 manual/latest/plugins/projects.html                |    2 +-
 manual/latest/plugins/projects/projects.html       |    4 +-
 manual/latest/projects/advanced.html               |    4 +-
 manual/latest/projects/index.html                  |    2 +-
 manual/latest/projects/metadata.html               |    4 +-
 manual/latest/projects/projects-environments.html  |    2 +-
 manual/latest/protips/index.html                   |    2 +-
 manual/latest/samples/samples.html                 |    2 +-
 .../latest/snippets/best-practices/governance.html |    2 +-
 manual/latest/snippets/best-practices/logging.html |    2 +-
 manual/latest/snippets/best-practices/loops.html   |    2 +-
 .../latest/snippets/best-practices/mappings.html   |    2 +-
 .../best-practices/metadata-injection.html         |    2 +-
 .../best-practices/naming-conventions.html         |    2 +-
 .../best-practices/performance-basics.html         |    2 +-
 .../snippets/best-practices/size-matters.html      |    2 +-
 .../latest/snippets/best-practices/variables.html  |    2 +-
 manual/latest/snippets/hop-concepts/action.html    |    2 +-
 .../latest/snippets/hop-concepts/environment.html  |    2 +-
 .../hop-concepts/hop-projects-environments.html    |    2 +-
 manual/latest/snippets/hop-concepts/hop.html       |    2 +-
 .../latest/snippets/hop-concepts/item-types.html   |    2 +-
 .../latest/snippets/hop-concepts/lazy-loading.html |    2 +-
 manual/latest/snippets/hop-concepts/metadata.html  |    2 +-
 manual/latest/snippets/hop-concepts/pipeline.html  |    2 +-
 manual/latest/snippets/hop-concepts/project.html   |    2 +-
 manual/latest/snippets/hop-concepts/transform.html |    2 +-
 manual/latest/snippets/hop-concepts/workflow.html  |    2 +-
 manual/latest/snippets/hop-tools/hop-conf.html     |    2 +-
 manual/latest/snippets/hop-tools/hop-encrypt.html  |    2 +-
 manual/latest/snippets/hop-tools/hop-gui.html      |    2 +-
 manual/latest/snippets/hop-tools/hop-run.html      |    2 +-
 manual/latest/snippets/hop-tools/hop-search.html   |    2 +-
 manual/latest/snippets/hop-tools/hop-server.html   |    2 +-
 manual/latest/snippets/hop-tools/hop-tools.html    |    2 +-
 .../latest/snippets/hop-tools/hop-translator.html  |    2 +-
 manual/latest/technology/azure/index.html          |    2 +-
 manual/latest/technology/cassandra/index.html      |    2 +-
 manual/latest/technology/google/index.html         |    2 +-
 manual/latest/technology/neo4j/index.html          |    2 +-
 .../technology/neo4j/working-with-neo4j-data.html  |    4 +-
 manual/latest/technology/technology.html           |    2 +-
 manual/latest/variables.html                       |    4 +-
 manual/latest/vfs.html                             |    2 +-
 manual/latest/vfs/aws-s3-vfs.html                  |    4 +-
 manual/latest/vfs/azure-blob-storage-vfs.html      |    4 +-
 manual/latest/vfs/dropbox-vfs.html                 |    4 +-
 manual/latest/vfs/google-cloud-storage-vfs.html    |    4 +-
 manual/latest/vfs/google-drive-vfs.html            |    6 +-
 manual/latest/workflow/actions.html                |    2 +-
 manual/latest/workflow/actions/abort.html          |    2 +-
 .../workflow/actions/addresultfilenames.html       |    2 +-
 manual/latest/workflow/actions/as400command.html   |    2 +-
 .../workflow/actions/cassandra-exec-cql.html       |    4 +-
 .../latest/workflow/actions/checkdbconnection.html |    2 +-
 .../latest/workflow/actions/checkfilelocked.html   |    2 +-
 manual/latest/workflow/actions/columnsexist.html   |    2 +-
 manual/latest/workflow/actions/copyfiles.html      |    2 +-
 .../workflow/actions/copymoveresultfilenames.html  |    2 +-
 manual/latest/workflow/actions/createfile.html     |    2 +-
 manual/latest/workflow/actions/createfolder.html   |    2 +-
 manual/latest/workflow/actions/delay.html          |    2 +-
 manual/latest/workflow/actions/deletefile.html     |    2 +-
 manual/latest/workflow/actions/deletefiles.html    |    2 +-
 manual/latest/workflow/actions/deletefolders.html  |    2 +-
 .../workflow/actions/deleteresultfilenames.html    |    2 +-
 manual/latest/workflow/actions/dostounix.html      |    2 +-
 manual/latest/workflow/actions/dtdvalidator.html   |    2 +-
 manual/latest/workflow/actions/dummy.html          |    2 +-
 manual/latest/workflow/actions/eval.html           |    4 +-
 .../latest/workflow/actions/evalfilesmetrics.html  |    2 +-
 .../workflow/actions/evaluatetablecontent.html     |    2 +-
 manual/latest/workflow/actions/filecompare.html    |    2 +-
 manual/latest/workflow/actions/fileexists.html     |    2 +-
 manual/latest/workflow/actions/filesexist.html     |    2 +-
 manual/latest/workflow/actions/folderisempty.html  |    2 +-
 manual/latest/workflow/actions/folderscompare.html |    2 +-
 manual/latest/workflow/actions/ftp.html            |    2 +-
 manual/latest/workflow/actions/ftpdelete.html      |    2 +-
 manual/latest/workflow/actions/ftpput.html         |    2 +-
 manual/latest/workflow/actions/getpop.html         |    2 +-
 manual/latest/workflow/actions/http.html           |    2 +-
 manual/latest/workflow/actions/mail.html           |    2 +-
 manual/latest/workflow/actions/mailvalidator.html  |    2 +-
 manual/latest/workflow/actions/movefiles.html      |    2 +-
 manual/latest/workflow/actions/msgboxinfo.html     |    4 +-
 manual/latest/workflow/actions/mssqlbulkload.html  |    2 +-
 manual/latest/workflow/actions/mysqlbulkfile.html  |    2 +-
 manual/latest/workflow/actions/mysqlbulkload.html  |    2 +-
 .../workflow/actions/neo4j-checkconnections.html   |    2 +-
 .../latest/workflow/actions/neo4j-constraint.html  |    2 +-
 .../workflow/actions/neo4j-cypherscript.html       |    4 +-
 manual/latest/workflow/actions/neo4j-index.html    |    2 +-
 .../latest/workflow/actions/pgpdecryptfiles.html   |    2 +-
 .../latest/workflow/actions/pgpencryptfiles.html   |    2 +-
 manual/latest/workflow/actions/pgpverify.html      |    2 +-
 manual/latest/workflow/actions/ping.html           |    2 +-
 manual/latest/workflow/actions/pipeline.html       |    2 +-
 manual/latest/workflow/actions/repeat-end.html     |    2 +-
 manual/latest/workflow/actions/repeat.html         |    2 +-
 .../latest/workflow/actions/runpipelinetests.html  |    2 +-
 .../workflow/actions/sendnagiospassivecheck.html   |    2 +-
 manual/latest/workflow/actions/setvariables.html   |    2 +-
 manual/latest/workflow/actions/sftp.html           |    4 +-
 manual/latest/workflow/actions/sftpput.html        |    4 +-
 manual/latest/workflow/actions/shell.html          |    2 +-
 manual/latest/workflow/actions/simpleeval.html     |    2 +-
 manual/latest/workflow/actions/snmptrap.html       |    2 +-
 manual/latest/workflow/actions/sql.html            |    2 +-
 manual/latest/workflow/actions/start.html          |    2 +-
 manual/latest/workflow/actions/success.html        |    2 +-
 manual/latest/workflow/actions/tableexists.html    |    2 +-
 manual/latest/workflow/actions/telnet.html         |    2 +-
 manual/latest/workflow/actions/truncatetables.html |    2 +-
 manual/latest/workflow/actions/unzip.html          |    2 +-
 manual/latest/workflow/actions/waitforfile.html    |    2 +-
 manual/latest/workflow/actions/waitforsql.html     |    2 +-
 .../workflow/actions/webserviceavailable.html      |    2 +-
 manual/latest/workflow/actions/workflow.html       |    2 +-
 manual/latest/workflow/actions/writetofile.html    |    2 +-
 manual/latest/workflow/actions/writetolog.html     |    2 +-
 manual/latest/workflow/actions/xmlwellformed.html  |    2 +-
 manual/latest/workflow/actions/xsdvalidator.html   |    2 +-
 manual/latest/workflow/actions/xslt.html           |    2 +-
 manual/latest/workflow/actions/zipfile.html        |    2 +-
 manual/latest/workflow/create-workflow.html        |    2 +-
 manual/latest/workflow/run-debug-workflow.html     |    2 +-
 .../native-local-workflow-engine.html              |    2 +-
 .../native-remote-workflow-engine.html             |    2 +-
 .../workflow-run-configurations.html               |    2 +-
 manual/latest/workflow/workflows.html              |    2 +-
 security/index.html                                |   30 +-
 sitemap-dev-manual.xml                             |   42 +-
 sitemap-manual.xml                                 | 4494 ++++++++++----------
 sitemap-tech-manual.xml                            |   22 +-
 tech-manual/latest/docker-container.html           |    4 +-
 tech-manual/latest/getting-started.html            |    2 +-
 tech-manual/latest/hop-logo-and-icons.html         |    2 +-
 .../latest/hop-vs-kettle/hop-vs-kettle.html        |    2 +-
 .../latest/hop-vs-kettle/if-you-know-kettle.html   |    2 +-
 .../hop-vs-kettle/import-kettle-projects.html      |    2 +-
 tech-manual/latest/hop-vs-kettle/index.html        |    2 +-
 tech-manual/latest/index.html                      |    2 +-
 .../latest/logging/logging-architecture.html       |    2 +-
 tech-manual/latest/logging/logging-plugins.html    |    2 +-
 tech-manual/latest/logging/udjc-logging.html       |    2 +-
 2185 files changed, 13461 insertions(+), 16362 deletions(-)

diff --git a/404.html b/404.html
index 72eeb68..28f9b02 100644
--- a/404.html
+++ b/404.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Page Not Found :: Apache Hop</title> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="/_/css/site-a5c153e5c5.css"> <meta property="og:title" content="Page Not Found :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="article"> <meta property="og: [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Page Not Found :: Apache Hop</title> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="/_/css/site-14ef316f35.css"> <meta property="og:title" content="Page Not Found :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="article"> <meta property="og: [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/404/index.html b/404/index.html
index 0e4be2b..f19c10e 100644
--- a/404/index.html
+++ b/404/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Hop&#39;s error handling caught a faulty request"> <meta property="og:description" content="The Hop Orchestration Platform aims to facilitate all aspects of data and metadata orchestration."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/404/"><meta property="og:image" co [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Hop&#39;s error handling caught a faulty request"> <meta property="og:description" content="The Hop Orchestration Platform aims to facilitate all aspects of data and metadata orchestration."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/404/"><meta property="og:image" co [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/404/",
-          "name": "404"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/_/css/site-14ef316f35.css b/_/css/site-14ef316f35.css
new file mode 100644
index 0000000..6337d3d
--- /dev/null
+++ b/_/css/site-14ef316f35.css
@@ -0,0 +1,2 @@
+@font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url(../font/open-sans-latin-ext-300.woff2) format("woff2"),url(../font/open-sans-latin-ext-300.woff) format("woff")}@font-face{font-family:Open Sans;font-style:italic;font-display:swap;font-weight:300;src:local("Open Sans Light Italic"),local("OpenSans-LightItalic"),url(../font/open-sans-latin-ext-300-italic.woff2) format("woff2"),url(../font/open-sans [...]
+/*! Adapted from the GitHub style by Vasily Polovnyov <va...@whiteants.net> */.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:500}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:500}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-wei [...]
\ No newline at end of file
diff --git a/_/css/site-a5c153e5c5.css b/_/css/site-a5c153e5c5.css
deleted file mode 100644
index f916f99..0000000
--- a/_/css/site-a5c153e5c5.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url(~@openfonts/open-sans_latin-ext/files/open-sans-latin-ext-300.woff2) format("woff2"),url(~@openfonts/open-sans_latin-ext/files/open-sans-latin-ext-300.woff) format("woff")}@font-face{font-family:Open Sans;font-style:italic;font-display:swap;font-weight:300;src:local("Open Sans Light Italic"),local("OpenSans-LightItalic"),url(~@openfonts/open-sans_l [...]
-/*! Adapted from the GitHub style by Vasily Polovnyov <va...@whiteants.net> */.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:500}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:500}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-wei [...]
\ No newline at end of file
diff --git a/_/data/rev-manifest.json b/_/data/rev-manifest.json
index 2f41bb2..5e1d110 100644
--- a/_/data/rev-manifest.json
+++ b/_/data/rev-manifest.json
@@ -1,7 +1,17 @@
 {
-  "css/site.css": "css/site-a5c153e5c5.css",
-  "js/site.js": "js/site-48c7e4fe4a.js",
+  "css/site.css": "css/site-14ef316f35.css",
+  "img/back.svg": "img/back-0b77317ba4.svg",
+  "img/caret.svg": "img/caret-fe375177d0.svg",
+  "img/chevron.svg": "img/chevron-0d3baf009c.svg",
+  "img/close.svg": "img/close-71b79b2fc0.svg",
+  "img/home-o.svg": "img/home-o-5f818ccd11.svg",
+  "img/home.svg": "img/home-36f9a3c81a.svg",
+  "img/hop-logo.svg": "img/hop-logo-90b6b4a5e5.svg",
+  "img/logo-light.svg": "img/logo-light-a140b11621.svg",
+  "img/menu.svg": "img/menu-16e95092aa.svg",
+  "img/search.svg": "img/search-46756b38c9.svg",
+  "js/site.js": "js/site-2a38a705e3.js",
   "js/vendor/cookies-eu-banner.js": "js/vendor/cookies-eu-banner-d4a1518c50.js",
   "js/vendor/docsearch.min.js": "js/vendor/docsearch-4983f0f1ec.min.js",
-  "js/vendor/highlight.js": "js/vendor/highlight-41b831b4c4.js"
+  "js/vendor/highlight.js": "js/vendor/highlight-a243a7d07e.js"
 }
\ No newline at end of file
diff --git a/_/font/open-sans-latin-ext-300-italic.woff b/_/font/open-sans-latin-ext-300-italic.woff
new file mode 100644
index 0000000..420766e
Binary files /dev/null and b/_/font/open-sans-latin-ext-300-italic.woff differ
diff --git a/_/font/open-sans-latin-ext-300-italic.woff2 b/_/font/open-sans-latin-ext-300-italic.woff2
new file mode 100644
index 0000000..15d4f09
Binary files /dev/null and b/_/font/open-sans-latin-ext-300-italic.woff2 differ
diff --git a/_/font/open-sans-latin-ext-300.woff b/_/font/open-sans-latin-ext-300.woff
new file mode 100644
index 0000000..0f097ec
Binary files /dev/null and b/_/font/open-sans-latin-ext-300.woff differ
diff --git a/_/font/open-sans-latin-ext-300.woff2 b/_/font/open-sans-latin-ext-300.woff2
new file mode 100644
index 0000000..d84f4fb
Binary files /dev/null and b/_/font/open-sans-latin-ext-300.woff2 differ
diff --git a/_/font/open-sans-latin-ext-700-italic.woff b/_/font/open-sans-latin-ext-700-italic.woff
new file mode 100644
index 0000000..7b9b55a
Binary files /dev/null and b/_/font/open-sans-latin-ext-700-italic.woff differ
diff --git a/_/font/open-sans-latin-ext-700-italic.woff2 b/_/font/open-sans-latin-ext-700-italic.woff2
new file mode 100644
index 0000000..4115f24
Binary files /dev/null and b/_/font/open-sans-latin-ext-700-italic.woff2 differ
diff --git a/_/font/open-sans-latin-ext-700.woff b/_/font/open-sans-latin-ext-700.woff
new file mode 100644
index 0000000..46bbd75
Binary files /dev/null and b/_/font/open-sans-latin-ext-700.woff differ
diff --git a/_/font/open-sans-latin-ext-700.woff2 b/_/font/open-sans-latin-ext-700.woff2
new file mode 100644
index 0000000..c824c31
Binary files /dev/null and b/_/font/open-sans-latin-ext-700.woff2 differ
diff --git a/_/font/open-sans-latin-ext-800-italic.woff b/_/font/open-sans-latin-ext-800-italic.woff
new file mode 100644
index 0000000..78f742b
Binary files /dev/null and b/_/font/open-sans-latin-ext-800-italic.woff differ
diff --git a/_/font/open-sans-latin-ext-800-italic.woff2 b/_/font/open-sans-latin-ext-800-italic.woff2
new file mode 100644
index 0000000..0af09ac
Binary files /dev/null and b/_/font/open-sans-latin-ext-800-italic.woff2 differ
diff --git a/_/font/open-sans-latin-ext-800.woff b/_/font/open-sans-latin-ext-800.woff
new file mode 100644
index 0000000..d12be22
Binary files /dev/null and b/_/font/open-sans-latin-ext-800.woff differ
diff --git a/_/font/open-sans-latin-ext-800.woff2 b/_/font/open-sans-latin-ext-800.woff2
new file mode 100644
index 0000000..6621da9
Binary files /dev/null and b/_/font/open-sans-latin-ext-800.woff2 differ
diff --git a/_/img/back.svg b/_/img/back-0b77317ba4.svg
similarity index 100%
rename from _/img/back.svg
rename to _/img/back-0b77317ba4.svg
diff --git a/_/img/caret.svg b/_/img/caret-fe375177d0.svg
similarity index 100%
rename from _/img/caret.svg
rename to _/img/caret-fe375177d0.svg
diff --git a/_/img/chevron.svg b/_/img/chevron-0d3baf009c.svg
similarity index 100%
rename from _/img/chevron.svg
rename to _/img/chevron-0d3baf009c.svg
diff --git a/_/img/close.svg b/_/img/close-71b79b2fc0.svg
similarity index 100%
rename from _/img/close.svg
rename to _/img/close-71b79b2fc0.svg
diff --git a/_/img/home.svg b/_/img/home-36f9a3c81a.svg
similarity index 100%
rename from _/img/home.svg
rename to _/img/home-36f9a3c81a.svg
diff --git a/_/img/home-o.svg b/_/img/home-o-5f818ccd11.svg
similarity index 100%
rename from _/img/home-o.svg
rename to _/img/home-o-5f818ccd11.svg
diff --git a/_/img/hop-logo.svg b/_/img/hop-logo-90b6b4a5e5.svg
similarity index 100%
rename from _/img/hop-logo.svg
rename to _/img/hop-logo-90b6b4a5e5.svg
diff --git a/_/img/logo-light.svg b/_/img/logo-light-a140b11621.svg
similarity index 100%
rename from _/img/logo-light.svg
rename to _/img/logo-light-a140b11621.svg
diff --git a/_/img/menu.svg b/_/img/menu-16e95092aa.svg
similarity index 100%
rename from _/img/menu.svg
rename to _/img/menu-16e95092aa.svg
diff --git a/_/img/search.svg b/_/img/search-46756b38c9.svg
similarity index 100%
rename from _/img/search.svg
rename to _/img/search-46756b38c9.svg
diff --git a/_/js/site-2a38a705e3.js b/_/js/site-2a38a705e3.js
new file mode 100644
index 0000000..2fa0be0
--- /dev/null
+++ b/_/js/site-2a38a705e3.js
@@ -0,0 +1,6 @@
+!function(){"use strict";var e=/^sect(\d)$/,t=document.querySelector(".nav-container"),n=document.querySelector(".nav-toggle");n.addEventListener("click",(function(e){if(n.classList.contains("is-active"))return u(e);v(e);var i=document.documentElement;i.classList.add("is-clipped--nav"),n.classList.add("is-active"),t.classList.add("is-active");var a=c.getBoundingClientRect(),o=window.innerHeight-Math.round(a.top);Math.round(a.height)!==o&&(c.style.height=o+"px");i.addEventListener("click" [...]
+!function(){"use strict";var e=document.querySelector("aside.toc.sidebar");if(e){if(document.querySelector("body.-toc"))return e.parentNode.removeChild(e);var t=parseInt(e.dataset.levels||2,10);if(!(t<0)){for(var o="article.doc",n=document.querySelector(o),i=[],r=0;r<=t;r++){var a=[o];if(r){for(var d=1;d<=r;d++)a.push((2===d?".sectionbody>":"")+".sect"+d);a.push("h"+(r+1)+"[id]")}else a.push("h1[id].sect0");i.push(a.join(">"))}var c,s,l,u=(c=i.join(","),s=n.parentNode,[].slice.call((s||d [...]
+!function(){"use strict";var e=document.querySelector("article.doc"),t=document.querySelector(".toolbar");function n(e){return e&&(~e.indexOf("%")?decodeURIComponent(e):e).slice(1)}function o(t,n){return e.contains(t)?o(t.offsetParent,t.offsetTop+n):n}function i(e){if(e){if(e.altKey||e.ctrlKey)return;window.location.hash="#"+this.id,e.preventDefault()}window.scrollTo(0,o(this,0)-t.getBoundingClientRect().bottom)}window.addEventListener("load",(function e(t){var o,r;(o=n(window.location.h [...]
+!function(){"use strict";var e=document.querySelector(".page-versions .version-menu-toggle");if(e){var t=document.querySelector(".page-versions");e.addEventListener("click",(function(e){t.classList.toggle("is-active"),e.stopPropagation()})),document.documentElement.addEventListener("click",(function(){t.classList.remove("is-active")}))}}();
+!function(){"use strict";var t=document.querySelector(".navbar-burger");t&&t.addEventListener("click",function(t){t.stopPropagation(),document.documentElement.classList.toggle("is-clipped--navbar"),this.classList.toggle("is-active");var e=document.getElementById(this.dataset.target);if(e.classList.toggle("is-active")){e.style.maxHeight="";var i=window.innerHeight-Math.round(e.getBoundingClientRect().top);parseInt(window.getComputedStyle(e).maxHeight,10)!==i&&(e.style.maxHeight=i+"px")}}. [...]
+!function(){"use strict";var e=/^\$ (\S[^\\\n]*(\\\n(?!\$ )[^\\\n]*)*)(?=\n|$)/gm,t=/( ) *\\\n *|\\\n( ?) */g,a=/ +$/gm,i=(document.getElementById("site-script")||{dataset:{}}).dataset;function n(i){var n=i.innerText.replace(a,"");"console"===i.dataset.lang&&n.startsWith("$ ")&&(n=function(a){for(var i,n=[];i=e.exec(a);)n.push(i[1].replace(t,"$1$2"));return n.join(" && ")}(n)),window.navigator.clipboard.writeText(n).then(function(){this.classList.add("clicked"),this.offsetHeight,this.cla [...]
\ No newline at end of file
diff --git a/_/js/site-48c7e4fe4a.js b/_/js/site-48c7e4fe4a.js
deleted file mode 100644
index 03ac352..0000000
--- a/_/js/site-48c7e4fe4a.js
+++ /dev/null
@@ -1,5 +0,0 @@
-!function(){"use strict";var e,t,n=document.querySelector(".nav-container"),i=document.querySelector(".nav-toggle");if(i&&i.addEventListener("click",(function(e){if(i.classList.contains("is-active"))return r(e);var t=document.documentElement;t.classList.add("is-clipped--nav"),i.classList.add("is-active"),n.classList.add("is-active"),t.addEventListener("click",r),l(e)})),n){n.addEventListener("click",l);var a=n.querySelector("[data-panel=menu]");if(!a)return;var c=n.querySelector(".nav"), [...]
-!function(){"use strict";var e=document.querySelector("article.doc"),t=document.querySelector(".toolbar");function n(t,o){return e.contains(t)?n(t.offsetParent,t.offsetTop+o):o}function o(e){e&&(window.location.hash="#"+this.id,e.preventDefault()),window.scrollTo(0,n(this,0)-t.getBoundingClientRect().bottom)}window.addEventListener("load",(function e(t){var n,i;(n=window.location.hash)&&(i=document.getElementById(n.slice(1)))&&(o.bind(i)(),setTimeout(o.bind(i),0)),window.removeEventListe [...]
-!function(){"use strict";var e=document.querySelector("aside.toc.sidebar");if(e){if(document.querySelector("body.-toc"))return e.parentNode.removeChild(e);var t=parseInt(e.dataset.levels||2);if(!(t<0)){for(var n,o,i,r,a=document.querySelector("article.doc"),c=[],d=a.classList.contains("static"),s=0;s<=t;s++)d?c.push(s?"h"+(s+1)+"[id]":"h1[id]"):c.push(s?".sect"+s+">h"+(s+1)+"[id]":"h1[id].sect0");if(!(o=c.join(","),i=a,n=[].slice.call((i||document).querySelectorAll(o))).length)return e.p [...]
-!function(){"use strict";var e=document.querySelector(".page-versions .version-menu-toggle");if(e){var t=document.querySelector(".page-versions");e.addEventListener("click",(function(e){t.classList.toggle("is-active"),e.stopPropagation()})),document.documentElement.addEventListener("click",(function(){t.classList.remove("is-active")}))}}();
-document.addEventListener("DOMContentLoaded",(function(){var t=Array.prototype.slice.call(document.querySelectorAll(".navbar-burger"),0);0!==t.length&&t.forEach((function(t){t.addEventListener("click",(function(e){e.stopPropagation(),t.classList.toggle("is-active"),document.getElementById(t.dataset.target).classList.toggle("is-active"),document.documentElement.classList.toggle("is-clipped--navbar")}))}))}));
\ No newline at end of file
diff --git a/_/js/vendor/highlight-41b831b4c4.js b/_/js/vendor/highlight-41b831b4c4.js
deleted file mode 100644
index d75a5fb..0000000
--- a/_/js/vendor/highlight-41b831b4c4.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){var e,n,a={};e=function(e){var n=[],a=Object.keys,t={},i={},s=/^(no-?highlight|plain|text)$/i,r=/\blang(?:uage)?-([\w-]+)\b/i,l=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,o="</span>",c={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function d(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function g(e){return e.nodeName.toLowerCase()}function u(e,n){var a=e&&e.exec(n);return a&&0===a.index}function m(e){return s.test(e)}function b(e){var n,a= [...]
\ No newline at end of file
diff --git a/_/js/vendor/highlight-a243a7d07e.js b/_/js/vendor/highlight-a243a7d07e.js
new file mode 100644
index 0000000..9fee1f3
--- /dev/null
+++ b/_/js/vendor/highlight-a243a7d07e.js
@@ -0,0 +1 @@
+!function(){var e,n,a={};e=function(e){var n=[],a=Object.keys,t=Object.create(null),i=Object.create(null),s=!0,r=/^(no-?highlight|plain|text)$/i,l=/\blang(?:uage)?-([\w-]+)\b/i,o=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,c="</span>",d="Could not find the language '{}', did you forget to load/include a language module?",g={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},u="of and for in not or if then".split(" ");function m(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replac [...]
\ No newline at end of file
diff --git a/_/rev-manifest b/_/rev-manifest
new file mode 100644
index 0000000..5e1d110
--- /dev/null
+++ b/_/rev-manifest
@@ -0,0 +1,17 @@
+{
+  "css/site.css": "css/site-14ef316f35.css",
+  "img/back.svg": "img/back-0b77317ba4.svg",
+  "img/caret.svg": "img/caret-fe375177d0.svg",
+  "img/chevron.svg": "img/chevron-0d3baf009c.svg",
+  "img/close.svg": "img/close-71b79b2fc0.svg",
+  "img/home-o.svg": "img/home-o-5f818ccd11.svg",
+  "img/home.svg": "img/home-36f9a3c81a.svg",
+  "img/hop-logo.svg": "img/hop-logo-90b6b4a5e5.svg",
+  "img/logo-light.svg": "img/logo-light-a140b11621.svg",
+  "img/menu.svg": "img/menu-16e95092aa.svg",
+  "img/search.svg": "img/search-46756b38c9.svg",
+  "js/site.js": "js/site-2a38a705e3.js",
+  "js/vendor/cookies-eu-banner.js": "js/vendor/cookies-eu-banner-d4a1518c50.js",
+  "js/vendor/docsearch.min.js": "js/vendor/docsearch-4983f0f1ec.min.js",
+  "js/vendor/highlight.js": "js/vendor/highlight-a243a7d07e.js"
+}
\ No newline at end of file
diff --git a/blog/2020/02/roundup-2020-02/index.html b/blog/2020/02/roundup-2020-02/index.html
index 7f23728..40bc325 100644
--- a/blog/2020/02/roundup-2020-02/index.html
+++ b/blog/2020/02/roundup-2020-02/index.html
@@ -1,6 +1,6 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup February 2020"> <meta property="og:description" content="Currently we are working on creating a first public preview version of the Hop Orchestration Platform. Expect this version to give you a first overview of what the future of Hop will be offering, we are not following a specific roadmap and are working on all fr [...]
  Following items contain the biggest changes but much more is happening.
-   UI We are completely rewriting the Hop UI, creating a new experience on how to create data pipelines."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/02/roundup-2020-02/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-03-08T12:38:42&#43;01:00"> <meta property="article:modified_time" content=" [...]
+   UI We are completely rewriting the Hop UI, creating a new experience on how to create data pipelines."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/02/roundup-2020-02/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-03-08T12:38:42&#43;01:00"> <meta property="article:modified_time" content=" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,51 +18,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/02/",
-          "name": "02"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/02/roundup-2020-02/",
-          "name": "roundup-2020-02"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/03/roundup-2020-03/index.html b/blog/2020/03/roundup-2020-03/index.html
index fcbc233..96776e3 100644
--- a/blog/2020/03/roundup-2020-03/index.html
+++ b/blog/2020/03/roundup-2020-03/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup March 2020"> <meta property="og:description" content="A new month, a new roundup! We’re getting very close to a first preview release, expect it to see the light of day in the coming week (don’t haunt us if it’s a week later). We have continued to walk the path of major code cleanup and refactoring. Because we don’t  [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup March 2020"> <meta property="og:description" content="A new month, a new roundup! We’re getting very close to a first preview release, expect it to see the light of day in the coming week (don’t haunt us if it’s a week later). We have continued to walk the path of major code cleanup and refactoring. Because we don’t  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/03/",
-          "name": "03"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/03/roundup-2020-03/",
-          "name": "roundup-2020-03"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/04/release-preview-0.1/index.html b/blog/2020/04/release-preview-0.1/index.html
index 685c832..34c993c 100644
--- a/blog/2020/04/release-preview-0.1/index.html
+++ b/blog/2020/04/release-preview-0.1/index.html
@@ -1,7 +1,7 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Preview Release 0.10"> <meta property="og:description" content="After more than half a year of hard work, we felt the time was right to show the world what we have been working on.
  We’re happy to announce to availability of our 0.10 preview release. Please take it for a spin. If you find a bug, please create a bug ticket, if there’s functionality you’d like to see, please create a feature request.
  Direct download here
- Getting Started Guide"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/04/release-preview-0.1/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-04-09T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-04-09T12:01:56&#43;02:00"> <link rel="icon" type="image/png" href="../../ [...]
+ Getting Started Guide"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/04/release-preview-0.1/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-04-09T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-04-09T12:01:56&#43;02:00"> <link rel="icon" type="image/png" href="../../ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -19,51 +19,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/04/",
-          "name": "04"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/04/release-preview-0.1/",
-          "name": "release-preview-0.1"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/04/roundup-2020-04/index.html b/blog/2020/04/roundup-2020-04/index.html
index 3f2ea2a..f51e4d4 100644
--- a/blog/2020/04/roundup-2020-04/index.html
+++ b/blog/2020/04/roundup-2020-04/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup April 2020"> <meta property="og:description" content="Another month has passed time for a new roundup! Previous month has been a hectic one, we had our first preview version (0.10) and are currently getting close to releasing 0.20!
- We would like to thank everyone that tested 0.10 and created feature requests and issues, we have not yet been able to solve all of them but so many changes were made we feel like 0.20 is at its place."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/04/roundup-2020-04/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:publish [...]
+ We would like to thank everyone that tested 0.10 and created feature requests and issues, we have not yet been able to solve all of them but so many changes were made we feel like 0.20 is at its place."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/04/roundup-2020-04/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:publish [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/04/",
-          "name": "04"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/04/roundup-2020-04/",
-          "name": "roundup-2020-04"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/05/preview-release-0.21/index.html b/blog/2020/05/preview-release-0.21/index.html
index b140706..dad7d2d 100644
--- a/blog/2020/05/preview-release-0.21/index.html
+++ b/blog/2020/05/preview-release-0.21/index.html
@@ -2,7 +2,7 @@
  We’re happy to announce to availability of our 0.21 preview release. Please take it for a spin. If you find a bug, please create a bug ticket, if there’s functionality you’d like to see, please create a feature request.
  Direct download here
  Getting Started Guide
- Release Notes: 0.20, 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/05/preview-release-0.21/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-05-07T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-05-07T12:01:56&#43;02:00"> <link rel="icon" type="image/png" href="../ [...]
+ Release Notes: 0.20, 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/05/preview-release-0.21/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-05-07T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-05-07T12:01:56&#43;02:00"> <link rel="icon" type="image/png" href="../ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -20,51 +20,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/05/",
-          "name": "05"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/05/preview-release-0.21/",
-          "name": "preview-release-0.21"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/05/roundup-2020-05/index.html b/blog/2020/05/roundup-2020-05/index.html
index ecf83ee..ebecd1c 100644
--- a/blog/2020/05/roundup-2020-05/index.html
+++ b/blog/2020/05/roundup-2020-05/index.html
@@ -1,7 +1,7 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup May 2020"> <meta property="og:description" content="Another month has passed, so here we are with a new roundup!
  In early May, we released version 0.21. Check the release announcement here
  We would like to thank everyone who tested 0.21 and created feature requests and bug tickets. Fixing the bugs and implementing the feature requests will keep us busy for another couple of weeks.
- Apart from the topics discussed below, we have continued to walk the path of major code cleanup and refactoring."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/05/roundup-2020-05/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-06-02T12:01:56&#43;02:00"> <meta property="article:modified_time"  [...]
+ Apart from the topics discussed below, we have continued to walk the path of major code cleanup and refactoring."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/05/roundup-2020-05/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-06-02T12:01:56&#43;02:00"> <meta property="article:modified_time"  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -19,51 +19,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/05/",
-          "name": "05"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/05/roundup-2020-05/",
-          "name": "roundup-2020-05"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/06/roundup-2020-06/index.html b/blog/2020/06/roundup-2020-06/index.html
index 15e77e1..1a332c9 100644
--- a/blog/2020/06/roundup-2020-06/index.html
+++ b/blog/2020/06/roundup-2020-06/index.html
@@ -2,7 +2,7 @@
  A lot of work has been done in the last couple of weeks. A huge thanks to Matt, who implemented most of the functionality that was added this month.
  Here’s what happened in June!
    Environments → Projects, Environments and Purposes The environments system, introduced earlier this year, was significantly extended.
-   a project is a set of workflows and pipelines with their datasets, tests etc."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/06/roundup-2020-06/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-06-27T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-06-27T12:01:56&#43; [...]
+   a project is a set of workflows and pipelines with their datasets, tests etc."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/06/roundup-2020-06/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-06-27T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-06-27T12:01:56&#43; [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -20,51 +20,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/06/",
-          "name": "06"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/06/roundup-2020-06/",
-          "name": "roundup-2020-06"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/07/preview-release-0.30/index.html b/blog/2020/07/preview-release-0.30/index.html
index 23da47b..f0b18bb 100644
--- a/blog/2020/07/preview-release-0.30/index.html
+++ b/blog/2020/07/preview-release-0.30/index.html
@@ -3,7 +3,7 @@
  Direct download here
  Getting Started Guide
  Release Notes: 0.30
- Over 100 tickets have been closed in this release, here we will discuss the major changes."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/07/preview-release-0.30/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-07-21T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-07- [...]
+ Over 100 tickets have been closed in this release, here we will discuss the major changes."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/07/preview-release-0.30/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-07-21T12:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-07- [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -21,51 +21,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/07/",
-          "name": "07"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/07/preview-release-0.30/",
-          "name": "preview-release-0.30"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/08/roundup-2020-08/index.html b/blog/2020/08/roundup-2020-08/index.html
index 2b34cd4..fcc6a8d 100644
--- a/blog/2020/08/roundup-2020-08/index.html
+++ b/blog/2020/08/roundup-2020-08/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup July, August 2020"> <meta property="og:description" content="We released 0.30 in late July, followed by a couple of weeks of slower progress because of summer holidays, but here we are with a roundup for July and August.
- After all the heavy lifting we did in the first half of the year, Project Hop now entered a feature-freeze phase. The focus now is on bug fixing, documentation and hardening the platform. Minor new features may continue to appear, just don’t expect any spectacular new functionality for now."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/08/roundup-2020-08/"><meta property="og:image" content="https://hop.apache.org/img/hop- [...]
+ After all the heavy lifting we did in the first half of the year, Project Hop now entered a feature-freeze phase. The focus now is on bug fixing, documentation and hardening the platform. Minor new features may continue to appear, just don’t expect any spectacular new functionality for now."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/08/roundup-2020-08/"><meta property="og:image" content="https://hop.apache.org/img/hop- [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/08/",
-          "name": "08"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/08/roundup-2020-08/",
-          "name": "roundup-2020-08"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/10/hop-joins-the-asf/index.html b/blog/2020/10/hop-joins-the-asf/index.html
index 2887106..16165a5 100644
--- a/blog/2020/10/hop-joins-the-asf/index.html
+++ b/blog/2020/10/hop-joins-the-asf/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Hop Joins the ASF"> <meta property="og:description" content="Apache Hop - Incubation Proposal Accepted From the very start with Hop, we haven’t exactly been secretive about our intention to join the Apache Software Foundation (ASF) and donate Project Hop to the ASF as Apache Hop.
- After almost a year of work on Project Hop, we’re very happy to announce we’ve reached a first milestone: the Apache Hop proposal was submitted to the incubator mailing list on September, 9th and has been accepted!"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/10/hop-joins-the-asf/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property=" [...]
+ After almost a year of work on Project Hop, we’re very happy to announce we’ve reached a first milestone: the Apache Hop proposal was submitted to the incubator mailing list on September, 9th and has been accepted!"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/10/hop-joins-the-asf/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property=" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/10/",
-          "name": "10"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/10/hop-joins-the-asf/",
-          "name": "hop-joins-the-asf"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/11/roundup-2020-11/index.html b/blog/2020/11/roundup-2020-11/index.html
index af08985..1cb25ec 100644
--- a/blog/2020/11/roundup-2020-11/index.html
+++ b/blog/2020/11/roundup-2020-11/index.html
@@ -1,6 +1,6 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup September, October 2020"> <meta property="og:description" content="We’ve had another couple of busy months at Apache Hop. A lot of these changes have been happening in the background, but are very exciting nevertheless. As we’re getting close to finalizing the background work, we’ll soon have more time to work on Hop [...]
  Here’s what happened over the last two months.
-   Hop joins the Apache Software Foundation, becomes Apache Hop (Incubating)"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/11/roundup-2020-11/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-11-09T10:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-11-09T10:01:56&#43;02:0 [...]
+   Hop joins the Apache Software Foundation, becomes Apache Hop (Incubating)"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/11/roundup-2020-11/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2020-11-09T10:01:56&#43;02:00"> <meta property="article:modified_time" content="2020-11-09T10:01:56&#43;02:0 [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,51 +18,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/11/",
-          "name": "11"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/11/roundup-2020-11/",
-          "name": "roundup-2020-11"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2020/12/roundup-2020-12/index.html b/blog/2020/12/roundup-2020-12/index.html
index bc9d09f..97c306e 100644
--- a/blog/2020/12/roundup-2020-12/index.html
+++ b/blog/2020/12/roundup-2020-12/index.html
@@ -1,6 +1,6 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup November 2020"> <meta property="og:description" content="With 2020 coming to a close, we’ve started preparing for 0.50, which will be our first Apache release. We’ll have more news on that soon!
  At the start of the final month of 2020, let’s have a closer look at what happened at Apache Hop in November.
-   Apache Hop Incubation - infrastructure Our migration to the Apache Software Foundation infrastructure is now done. All references to Project Hop have been changed to Apache Hop (Incubating)."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/12/roundup-2020-12/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time"  [...]
+   Apache Hop Incubation - infrastructure Our migration to the Apache Software Foundation infrastructure is now done. All references to Project Hop have been changed to Apache Hop (Incubating)."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2020/12/roundup-2020-12/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time"  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,51 +18,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/",
-          "name": "2020"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/12/",
-          "name": "12"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2020/12/roundup-2020-12/",
-          "name": "roundup-2020-12"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/01/release-0.60/index.html b/blog/2021/01/release-0.60/index.html
index 538a00a..ee1dae2 100644
--- a/blog/2021/01/release-0.60/index.html
+++ b/blog/2021/01/release-0.60/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) 0.60 released"> <meta property="og:description" content="Less than three months since Project Hop joined the ASF Incubator (late October 2020), we’re happy to announce Apache Hop 0.60, our first release as an incubating project at the Apache Software Foundation.
-   Apache Hop (Incubating) 0.60 - Source only As stated earlier, one of the main goal of the incubator program is to give projects the time to adopt &#34;The Apache Way&#34;. As such, it took us a bit of time to get the entire process straightened out."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/01/release-0.60/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section"  [...]
+   Apache Hop (Incubating) 0.60 - Source only As stated earlier, one of the main goal of the incubator program is to give projects the time to adopt &#34;The Apache Way&#34;. As such, it took us a bit of time to get the entire process straightened out."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/01/release-0.60/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section"  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/01/",
-          "name": "01"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/01/release-0.60/",
-          "name": "release-0.60"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/01/roundup-2021-01/index.html b/blog/2021/01/roundup-2021-01/index.html
index ac61ca0..b1a9336 100644
--- a/blog/2021/01/roundup-2021-01/index.html
+++ b/blog/2021/01/roundup-2021-01/index.html
@@ -2,7 +2,7 @@
  While the world has seen its share of problems in 2020, it’s been a roller coaster for Hop!
  Our community continued to work tirelessly in December, even through the holiday period.
  Let’s have a look at what happened in this last burst of productivity for 2020. With this pace of development, 2021 will be a great year for Hop!
- A special shout out to Nicolas Adment, who was on an absolute roll in December!"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/01/roundup-2021-01/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2021-01-03T10:01:56&#43;02:00"> <meta property="article:modified_time" content="2021-01-03T10:01:56&#43; [...]
+ A special shout out to Nicolas Adment, who was on an absolute roll in December!"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/01/roundup-2021-01/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2021-01-03T10:01:56&#43;02:00"> <meta property="article:modified_time" content="2021-01-03T10:01:56&#43; [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -20,51 +20,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/01/",
-          "name": "01"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/01/roundup-2021-01/",
-          "name": "roundup-2021-01"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/02/roundup-2021-02/index.html b/blog/2021/02/roundup-2021-02/index.html
index 4353f64..0667217 100644
--- a/blog/2021/02/roundup-2021-02/index.html
+++ b/blog/2021/02/roundup-2021-02/index.html
@@ -1,10 +1,10 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup January 2021"> <meta property="og:description" content="As always at the start of another new month, let’s have a look at what happened at Hop over the last month. Here’s the recap for January 2021!
    Apache Hop (Incubating) 0.60 Released Apache Hop (Incubating) 0.60 was released in late January.
- With 0.60 being the first Hop release as an Incubating ASF project, we focused on adopting the &#34;Apache Way&#34;, and made this a source code only release."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/02/roundup-2021-02/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2021-02-02T10:01:56&#43;0 [...]
+ With 0.60 being the first Hop release as an Incubating ASF project, we focused on adopting the &#34;Apache Way&#34;, and made this a source code only release."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/02/roundup-2021-02/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="blog"> <meta property="article:published_time" content="2021-02-02T10:01:56&#43;0 [...]
       root = ID_MAIN_MENU,
       id = ID_MAIN_MENU_FILE,
       label = &#34;i18n::HopGui.Menu.File&#34;,
-      parentId = ID_MAIN_MENU)</code></pre> </div> </div> <div class="paragraph"> <p>Check the <a href="http://hop.apache.org/dev-manual/latest/internationalisation.html">internationalisation documentation</a> for more details.</p> </div> <div class="paragraph"> <p>On that page, you’ll also find information about the Translator’s use. Check the <a href="http://hop.apache.org/community/contribution-guides/translation-contribution-guide/">translation contributor guide</a> to check how you  [...]
+      parentId = ID_MAIN_MENU)</code></pre> </div> </div> <div class="paragraph"> <p>Check the <a href="http://hop.apache.org/dev-manual/latest/internationalisation.html">internationalisation documentation</a> for more details.</p> </div> <div class="paragraph"> <p>On that page, you’ll also find information about the Translator’s use. Check the <a href="http://hop.apache.org/community/contribution-guides/translation-contribution-guide/">translation contributor guide</a> to check how you  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -22,51 +22,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/02/",
-          "name": "02"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/02/roundup-2021-02/",
-          "name": "roundup-2021-02"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/03/roundup-2021-03/index.html b/blog/2021/03/roundup-2021-03/index.html
index 54be19a..9ea8ef7 100644
--- a/blog/2021/03/roundup-2021-03/index.html
+++ b/blog/2021/03/roundup-2021-03/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup February 2021"> <meta property="og:description" content="As always at the start of another new month, let’s have a look at what happened at Hop over the last month. Here’s the recap for February 2021!
- We have quite a lot of ground to cover. Here are some quick links for the restless souls among you: Metadata Injection Dark Mode Beam Spark runner improvements New Metadata Types New Plugins Various Community JIRA Tickets     Metadata Injection Metadata injection was added to Hop months ago."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/03/roundup-2021-03/"><meta property="og:image" content="https://hop.apache.org/img/hop [...]
+ We have quite a lot of ground to cover. Here are some quick links for the restless souls among you: Metadata Injection Dark Mode Beam Spark runner improvements New Metadata Types New Plugins Various Community JIRA Tickets     Metadata Injection Metadata injection was added to Hop months ago."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/03/roundup-2021-03/"><meta property="og:image" content="https://hop.apache.org/img/hop [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/03/",
-          "name": "03"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/03/roundup-2021-03/",
-          "name": "roundup-2021-03"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/04/release-0.70/index.html b/blog/2021/04/release-0.70/index.html
index 6db866e..13fbba7 100644
--- a/blog/2021/04/release-0.70/index.html
+++ b/blog/2021/04/release-0.70/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) 0.70 Release Available!"> <meta property="og:description" content="The Hop community is pleased to announce the availability of the Apache Hop (Incubating) 0.70 release.
- This release contains about 2.5 months of work. Since our 0.60 release in late January, we’ve seen a lot of activity in a variety of areas. Hop contributors not only worked on code: we’ve received contributions in artwork, translations, documentation etc. We have more than 45 new plugins, and a total of 223 jira tickets were implemented."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/04/release-0.70/"><meta property="og:im [...]
+ This release contains about 2.5 months of work. Since our 0.60 release in late January, we’ve seen a lot of activity in a variety of areas. Hop contributors not only worked on code: we’ve received contributions in artwork, translations, documentation etc. We have more than 45 new plugins, and a total of 223 jira tickets were implemented."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/04/release-0.70/"><meta property="og:im [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/04/",
-          "name": "04"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/04/release-0.70/",
-          "name": "release-0.70"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/04/roundup-2021-04/index.html b/blog/2021/04/roundup-2021-04/index.html
index 62bf005..1b41ff5 100644
--- a/blog/2021/04/roundup-2021-04/index.html
+++ b/blog/2021/04/roundup-2021-04/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup March 2021"> <meta property="og:description" content="As always at the start of another new month, let’s have a look at what happened at Hop over the last month. Here’s the recap for March 2021!
- The list of items we need to cover in the monthly reports continues to grow. Here are some quick links for the restless souls among you: Neo4j integration New file explorer perspective New Metadata Types VFS Drivers New Plugins Various Community JIRA Activity     Neo4j integration We’re really excited to welcome full Neo4j integration in Hop!"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/04/roundup-2021-04/"><meta propert [...]
+ The list of items we need to cover in the monthly reports continues to grow. Here are some quick links for the restless souls among you: Neo4j integration New file explorer perspective New Metadata Types VFS Drivers New Plugins Various Community JIRA Activity     Neo4j integration We’re really excited to welcome full Neo4j integration in Hop!"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/04/roundup-2021-04/"><meta propert [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/04/",
-          "name": "04"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/04/roundup-2021-04/",
-          "name": "roundup-2021-04"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/05/roundup-2021-05/index.html b/blog/2021/05/roundup-2021-05/index.html
index 2dacfcd..50d7dbd 100644
--- a/blog/2021/05/roundup-2021-05/index.html
+++ b/blog/2021/05/roundup-2021-05/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup April 2021"> <meta property="og:description" content="As always at the start of another new month, let’s have a look at what happened at Hop over the last month. Here’s the recap for April 2021!
- Here are some quick links for the restless souls among you: 0.70 release 3Hx (Hot Hop Hangout) Sessions Documentation, Samples, Integration tests Various Hop search Community JIRA Activity     0.70 release On April, 12th, the Hop community release Apache Hop (Incubating) 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/05/roundup-2021-05/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta p [...]
+ Here are some quick links for the restless souls among you: 0.70 release 3Hx (Hot Hop Hangout) Sessions Documentation, Samples, Integration tests Various Hop search Community JIRA Activity     0.70 release On April, 12th, the Hop community release Apache Hop (Incubating) 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/05/roundup-2021-05/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta p [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/05/",
-          "name": "05"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/05/roundup-2021-05/",
-          "name": "roundup-2021-05"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/06/roundup-2021-06/index.html b/blog/2021/06/roundup-2021-06/index.html
index 4f23dfa..bbdc18d 100644
--- a/blog/2021/06/roundup-2021-06/index.html
+++ b/blog/2021/06/roundup-2021-06/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup May 2021"> <meta property="og:description" content="As always at the start of another new month, let’s have a look at what happened at Hop over the last month. Here’s the recap for May 2021!
- Here are some quick links for the restless souls among you: Hop 0.99 Release process started Avro Support Various 3Hx (Hot Hop Hangout) Sessions Community JIRA Activity     Hop 0.99 Release process started At the very end of the month (on May, 27th), the release process for Hop 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/06/roundup-2021-06/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> [...]
+ Here are some quick links for the restless souls among you: Hop 0.99 Release process started Avro Support Various 3Hx (Hot Hop Hangout) Sessions Community JIRA Activity     Hop 0.99 Release process started At the very end of the month (on May, 27th), the release process for Hop 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/06/roundup-2021-06/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/06/",
-          "name": "06"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/06/roundup-2021-06/",
-          "name": "roundup-2021-06"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/07/roundup-2021-07/index.html b/blog/2021/07/roundup-2021-07/index.html
index 8662e1b..826570d 100644
--- a/blog/2021/07/roundup-2021-07/index.html
+++ b/blog/2021/07/roundup-2021-07/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup June 2021"> <meta property="og:description" content="As always at the start of another new month, let’s have a look at what happened at Hop over the last month. Here’s the recap for June 2021!
- Here are some quick links for the restless souls among you: Hop 0.99 Release process VFS Improvements Importer Improvements Hop Web Various 3Hx (Hot Hop Hangout) Sessions Community JIRA Activity     Hop 0.99 Release process We’ve created a couple of release candidate for Apache Hop (Incubating) 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/07/roundup-2021-07/"><meta property="og:image" content="https://hop.apache.org/i [...]
+ Here are some quick links for the restless souls among you: Hop 0.99 Release process VFS Improvements Importer Improvements Hop Web Various 3Hx (Hot Hop Hangout) Sessions Community JIRA Activity     Hop 0.99 Release process We’ve created a couple of release candidate for Apache Hop (Incubating) 0."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/07/roundup-2021-07/"><meta property="og:image" content="https://hop.apache.org/i [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,51 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/07/",
-          "name": "07"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/07/roundup-2021-07/",
-          "name": "roundup-2021-07"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/08/hop-0.99/index.html b/blog/2021/08/hop-0.99/index.html
index cdbb427..05cb4a6 100644
--- a/blog/2021/08/hop-0.99/index.html
+++ b/blog/2021/08/hop-0.99/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) 0.99 Release Available!"> <meta property="og:description" content="Apache Hop releases 0.99, our last stop before Hop 1.0"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/08/hop-0.99/"><meta property="og:image" content="https://hop.apache. [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) 0.99 Release Available!"> <meta property="og:description" content="Apache Hop releases 0.99, our last stop before Hop 1.0"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/08/hop-0.99/"><meta property="og:image" content="https://hop.apache. [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/08/",
-          "name": "08"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/08/hop-0.99/",
-          "name": "hop-0.99"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/09/roundup-2021-08/index.html b/blog/2021/09/roundup-2021-08/index.html
index cfc7545..2fed8d3 100644
--- a/blog/2021/09/roundup-2021-08/index.html
+++ b/blog/2021/09/roundup-2021-08/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup July, August 2021"> <meta property="og:description" content="The Apache Hop (Incubating) recap for July and August 2020: 0.99 released, Dropbox VFS support, ongoing bug hunt and community growth"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/09/roundup- [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup July, August 2021"> <meta property="og:description" content="The Apache Hop (Incubating) recap for July and August 2020: 0.99 released, Dropbox VFS support, ongoing bug hunt and community growth"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/09/roundup- [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/09/",
-          "name": "09"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/09/roundup-2021-08/",
-          "name": "roundup-2021-08"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/10/hop-1.0.0/index.html b/blog/2021/10/hop-1.0.0/index.html
index e2c079b..13b9e96 100644
--- a/blog/2021/10/hop-1.0.0/index.html
+++ b/blog/2021/10/hop-1.0.0/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) 1.0 is available!!"> <meta property="og:description" content="After more than 2 years of work, Apache Hop (Incubating) releases 1.0. This release is a milestone in the project&#39;s continued effort to become the world&#39;s leading open source data integration and data orchestration platform."> <meta [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) 1.0 is available!!"> <meta property="og:description" content="After more than 2 years of work, Apache Hop (Incubating) releases 1.0. This release is a milestone in the project&#39;s continued effort to become the world&#39;s leading open source data integration and data orchestration platform."> <meta [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/10/",
-          "name": "10"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/10/hop-1.0.0/",
-          "name": "hop-1.0.0"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2021/12/roundup-2021-11/index.html b/blog/2021/12/roundup-2021-11/index.html
index 94c1fd0..2a71562 100644
--- a/blog/2021/12/roundup-2021-11/index.html
+++ b/blog/2021/12/roundup-2021-11/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup November 2021"> <meta property="og:description" content="The Apache Hop (Incubating) recap for November 2021: "> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/12/roundup-2021-11/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup November 2021"> <meta property="og:description" content="The Apache Hop (Incubating) recap for November 2021: "> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2021/12/roundup-2021-11/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/",
-          "name": "2021"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/12/",
-          "name": "12"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2021/12/roundup-2021-11/",
-          "name": "roundup-2021-11"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2022/01/hop-1.1.0/index.html b/blog/2022/01/hop-1.1.0/index.html
index 712c503..b60d5cd 100644
--- a/blog/2022/01/hop-1.1.0/index.html
+++ b/blog/2022/01/hop-1.1.0/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop 1.1 is available!!"> <meta property="og:description" content="Hop 1.1.0 is the Hop first release as a Top-Level Project. This release contains four months of work and contains tons of improvements and bugfixes."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/bl [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop 1.1 is available!!"> <meta property="og:description" content="Hop 1.1.0 is the Hop first release as a Top-Level Project. This release contains four months of work and contains tons of improvements and bugfixes."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/bl [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/",
-          "name": "2022"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/01/",
-          "name": "01"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/01/hop-1.1.0/",
-          "name": "hop-1.1.0"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2022/01/hop-graduation/index.html b/blog/2022/01/hop-graduation/index.html
index 7763001..1b02e80 100644
--- a/blog/2022/01/hop-graduation/index.html
+++ b/blog/2022/01/hop-graduation/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop Graduates as a Top-Level Project"> <meta property="og:description" content="Apache Hop graduates as a Top-Level Project at the Apache Software Foundation"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2022/01/hop-graduation/"><meta property="og:image" con [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop Graduates as a Top-Level Project"> <meta property="og:description" content="Apache Hop graduates as a Top-Level Project at the Apache Software Foundation"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2022/01/hop-graduation/"><meta property="og:image" con [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/",
-          "name": "2022"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/01/",
-          "name": "01"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/01/hop-graduation/",
-          "name": "hop-graduation"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2022/01/roundup-2021-12/index.html b/blog/2022/01/roundup-2021-12/index.html
index de66971..9ecf806 100644
--- a/blog/2022/01/roundup-2021-12/index.html
+++ b/blog/2022/01/roundup-2021-12/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup December 2021"> <meta property="og:description" content="The Apache Hop (Incubating) recap for December 2021: "> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2022/01/roundup-2021-12/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup December 2021"> <meta property="og:description" content="The Apache Hop (Incubating) recap for December 2021: "> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2022/01/roundup-2021-12/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/",
-          "name": "2022"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/01/",
-          "name": "01"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/01/roundup-2021-12/",
-          "name": "roundup-2021-12"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/2022/02/roundup-2022-02/index.html b/blog/2022/02/roundup-2022-02/index.html
index 5494f83..d6bce0f 100644
--- a/blog/2022/02/roundup-2022-02/index.html
+++ b/blog/2022/02/roundup-2022-02/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup January 2022"> <meta property="og:description" content="The Apache Hop recap for January 2022: "> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2022/02/roundup-2022-02/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta propert [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup January 2022"> <meta property="og:description" content="The Apache Hop recap for January 2022: "> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/blog/2022/02/roundup-2022-02/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta propert [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,51 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/",
-          "name": "2022"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/02/",
-          "name": "02"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  5 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/2022/02/roundup-2022-02/",
-          "name": "roundup-2022-02"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 15dac2b..b617158 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/10/index.html b/blog/page/10/index.html
index 8136f73..d6c6108 100644
--- a/blog/page/10/index.html
+++ b/blog/page/10/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index f022b7a..2828b6f 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index 951139c..2c159b1 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/4/index.html b/blog/page/4/index.html
index 9accef5..36297f9 100644
--- a/blog/page/4/index.html
+++ b/blog/page/4/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/5/index.html b/blog/page/5/index.html
index df53a9d..3d4d2cb 100644
--- a/blog/page/5/index.html
+++ b/blog/page/5/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/6/index.html b/blog/page/6/index.html
index 37b06d6..904ff8b 100644
--- a/blog/page/6/index.html
+++ b/blog/page/6/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/7/index.html b/blog/page/7/index.html
index 8ba61d4..c760126 100644
--- a/blog/page/7/index.html
+++ b/blog/page/7/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/8/index.html b/blog/page/8/index.html
index e017709..0e6da0c 100644
--- a/blog/page/8/index.html
+++ b/blog/page/8/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/blog/page/9/index.html b/blog/page/9/index.html
index 1bfbc15..319288a 100644
--- a/blog/page/9/index.html
+++ b/blog/page/9/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Blog"> <meta property="og:description" content="Stay up to date about all the latest news about Apache Hop through our blog"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/blog/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/blog/",
-          "name": "blog"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/1.0/index.html b/categories/1.0/index.html
index 19ff163..cdcaad2 100644
--- a/categories/1.0/index.html
+++ b/categories/1.0/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="1.0"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/1.0/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="1.0"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/1.0/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/1.0/",
-          "name": "1.0"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/1.1/index.html b/categories/1.1/index.html
index ca6306f..4ccaa73 100644
--- a/categories/1.1/index.html
+++ b/categories/1.1/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="1.1"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/1.1/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="1.1"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/1.1/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/1.1/",
-          "name": "1.1"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/ASF/index.html b/categories/ASF/index.html
index 48a14c2..1496770 100644
--- a/categories/ASF/index.html
+++ b/categories/ASF/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="ASF"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/ASF/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="ASF"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/ASF/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/ASF/",
-          "name": "ASF"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Announcement/index.html b/categories/Announcement/index.html
index e613781..1fafa4b 100644
--- a/categories/Announcement/index.html
+++ b/categories/Announcement/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Announcement"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Announcement/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="im [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Announcement"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Announcement/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="im [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Announcement/",
-          "name": "Announcement"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Apache-Hop-Incubating/index.html b/categories/Apache-Hop-Incubating/index.html
index 3e8f724..1591ae6 100644
--- a/categories/Apache-Hop-Incubating/index.html
+++ b/categories/Apache-Hop-Incubating/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Apache-Hop-Incubating/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link  [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Apache-Hop-Incubating/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Apache-Hop-Incubating/",
-          "name": "Apache-Hop-Incubating"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Apache-Hop/index.html b/categories/Apache-Hop/index.html
index 325d1df..b432dd4 100644
--- a/categories/Apache-Hop/index.html
+++ b/categories/Apache-Hop/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Apache-Hop/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Apache-Hop/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Apache-Hop/",
-          "name": "Apache-Hop"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Graduation/index.html b/categories/Graduation/index.html
index 01cef8d..ae8837b 100644
--- a/categories/Graduation/index.html
+++ b/categories/Graduation/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Graduation"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Graduation/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Graduation"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Graduation/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Graduation/",
-          "name": "Graduation"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Pre-Releae/index.html b/categories/Pre-Releae/index.html
index b354e98..bb1bec7 100644
--- a/categories/Pre-Releae/index.html
+++ b/categories/Pre-Releae/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Pre-Releae"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Pre-Releae/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Pre-Releae"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Pre-Releae/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Pre-Releae/",
-          "name": "Pre-Releae"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Pre-Release/index.html b/categories/Pre-Release/index.html
index a8a931d..e402b9a 100644
--- a/categories/Pre-Release/index.html
+++ b/categories/Pre-Release/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Pre-Release"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Pre-Release/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="imag [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Pre-Release"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Pre-Release/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="imag [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Pre-Release/",
-          "name": "Pre-Release"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Project-Hop/index.html b/categories/Project-Hop/index.html
index 59efa61..b56a819 100644
--- a/categories/Project-Hop/index.html
+++ b/categories/Project-Hop/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Project Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Project-Hop/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="imag [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Project Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Project-Hop/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="imag [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Project-Hop/",
-          "name": "Project-Hop"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Release/index.html b/categories/Release/index.html
index 00a7692..9bf522e 100644
--- a/categories/Release/index.html
+++ b/categories/Release/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Release"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Release/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" h [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Release"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Release/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" h [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Release/",
-          "name": "Release"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Releases/index.html b/categories/Releases/index.html
index ea08999..6ac11ae 100644
--- a/categories/Releases/index.html
+++ b/categories/Releases/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Releases"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Releases/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Releases"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Releases/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Releases/",
-          "name": "Releases"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/categories/Roundup/index.html b/categories/Roundup/index.html
index 1fff15a..e66c885 100644
--- a/categories/Roundup/index.html
+++ b/categories/Roundup/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Roundup/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" h [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roundup"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/categories/Roundup/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" h [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/",
-          "name": "categories"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/categories/Roundup/",
-          "name": "Roundup"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/commercial/index.html b/community/commercial/index.html
index 89973f3..8d96622 100644
--- a/community/commercial/index.html
+++ b/community/commercial/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Commercial Support"> <meta property="og:description" content="Commercial Support Apache Hop is gaining traction in data orchestration projects across a number of industries. As such, several companies have built products and services around Hop. This page is dedicated to providing descriptions of those offerings and links to [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Commercial Support"> <meta property="og:description" content="Commercial Support Apache Hop is gaining traction in data orchestration projects across a number of industries. As such, several companies have built products and services around Hop. This page is dedicated to providing descriptions of those offerings and links to [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/commercial/",
-          "name": "commercial"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contributing/index.html b/community/contributing/index.html
index 9805d3f..f21f80c 100644
--- a/community/contributing/index.html
+++ b/community/contributing/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="How To Contribute"> <meta property="og:description" content="Apache Hop is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache Hop. There are several ways to interact with the community and to contribute to Hop including asking questions, filing bug repor [...]
- What do you want to do? Contributing to Hop goes beyond writing code for the project."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contributing/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../_/css/site-a5c153e5c5.css"> < [...]
+ What do you want to do? Contributing to Hop goes beyond writing code for the project."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contributing/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../_/css/site-14ef316f35.css"> < [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,37 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contributing/",
-          "name": "contributing"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contribution-guides/code-contribution-guide/index.html b/community/contribution-guides/code-contribution-guide/index.html
index 29b9034..cf4e978 100644
--- a/community/contribution-guides/code-contribution-guide/index.html
+++ b/community/contribution-guides/code-contribution-guide/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Code Contribution Guide"> <meta property="og:description" content="Apache Hop is maintained, improved, and extended by code contributions of volunteers. We welcome contributions to Hop, but due to the size of the project and to preserve the high quality of the code base, we follow a contribution process that is explained in  [...]
- Please feel free to ask questions at any time. Either send a message in the dev channel on our chatserver or comment on the Jira issue you are working on."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/code-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../.. [...]
+ Please feel free to ask questions at any time. Either send a message in the dev channel on our chatserver or comment on the Jira issue you are working on."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/code-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../.. [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,44 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/",
-          "name": "contribution-guides"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/code-contribution-guide/",
-          "name": "code-contribution-guide"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contribution-guides/code-review-guide/index.html b/community/contribution-guides/code-review-guide/index.html
index 6d589fd..c0ee31e 100644
--- a/community/contribution-guides/code-review-guide/index.html
+++ b/community/contribution-guides/code-review-guide/index.html
@@ -1,6 +1,6 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Code Review Guide"> <meta property="og:description" content="This guide is for all committers and contributors that want to help with reviewing code contributions. Thank you for your effort - good reviews are one the most important and crucial parts of an open source project. This guide should help the community to make revi [...]
    Contributors have a good contribution experience.
-  Our reviews are structured and check all important aspects of a contribution."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/code-review-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../../_/css [...]
+  Our reviews are structured and check all important aspects of a contribution."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/code-review-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../../_/css [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,44 +18,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/",
-          "name": "contribution-guides"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/code-review-guide/",
-          "name": "code-review-guide"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contribution-guides/documentation-contribution-guide/index.html b/community/contribution-guides/documentation-contribution-guide/index.html
index aec1117..7ae4989 100644
--- a/community/contribution-guides/documentation-contribution-guide/index.html
+++ b/community/contribution-guides/documentation-contribution-guide/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Documentation Contribution Guide"> <meta property="og:description" content="Good documentation is crucial for any kind of software. This is especially true for sophisticated software systems such as distributed data processing engines like Apache Hop. The Apache Hop community aims to provide concise, precise, and complete do [...]
-   Warning  Just like code, documentation is never done. We’re eager to find out how you think our docs can be improved, come discuss with us on our documentation channel."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/documentation-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type=" [...]
+   Warning  Just like code, documentation is never done. We’re eager to find out how you think our docs can be improved, come discuss with us on our documentation channel."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/documentation-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type=" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,44 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/",
-          "name": "contribution-guides"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/documentation-contribution-guide/",
-          "name": "documentation-contribution-guide"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contribution-guides/jira-guide/index.html b/community/contribution-guides/jira-guide/index.html
index 35f7bcb..1458871 100644
--- a/community/contribution-guides/jira-guide/index.html
+++ b/community/contribution-guides/jira-guide/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Jira Guidelines"> <meta property="og:description" content="Jira is the issue tracker that is being used to track all changes and implementation of new code or documentation in Apache Hop. This document serves to explain the workflow that is used and what can happen after a ticket has been created. The second purpose is to ex [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Jira Guidelines"> <meta property="og:description" content="Jira is the issue tracker that is being used to track all changes and implementation of new code or documentation in Apache Hop. This document serves to explain the workflow that is used and what can happen after a ticket has been created. The second purpose is to ex [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,44 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/",
-          "name": "contribution-guides"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/jira-guide/",
-          "name": "jira-guide"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contribution-guides/release-contribution-guide/index.html b/community/contribution-guides/release-contribution-guide/index.html
index e3d5cd6..7ac7279 100644
--- a/community/contribution-guides/release-contribution-guide/index.html
+++ b/community/contribution-guides/release-contribution-guide/index.html
@@ -2,7 +2,7 @@
  Other useful information:
    ASF Release Management
    Check below for the TL;DR version. As always, we’re eager to hear your feedback!
- What is an Apache Release? Apache Releases are a legal handover of a software project. With each release, a project hands over the ownership of all items in the release to the Apache Software Foundations."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/release-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="communi [...]
+ What is an Apache Release? Apache Releases are a legal handover of a software project. With each release, a project hands over the ownership of all items in the release to the Apache Software Foundations."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/release-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="communi [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -20,44 +20,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/",
-          "name": "contribution-guides"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/release-contribution-guide/",
-          "name": "release-contribution-guide"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contribution-guides/translation-contribution-guide/index.html b/community/contribution-guides/translation-contribution-guide/index.html
index 3401790..b1a5eda 100644
--- a/community/contribution-guides/translation-contribution-guide/index.html
+++ b/community/contribution-guides/translation-contribution-guide/index.html
@@ -1,8 +1,8 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Translation Contribution Guide"> <meta property="og:description" content="Translating Hop to your language is an easy and code free contribution that adds a lot of value to our user community. The Hop Translator makes the process of translating Hop (or extending an existing translation) a breeze.
  Hop Translator The Hop Translator is a single dialog application.
-   How to run You’ll need the source code if you want to run the Hop Translator. Clone the repository from https://github."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/translation-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../../favicon-196x196.png" size [...]
+   How to run You’ll need the source code if you want to run the Hop Translator. Clone the repository from https://github."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/translation-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../../favicon-196x196.png" size [...]
 unzip hop-assemblies-client-0.1.0-SNAPSHOT.zip
-cd hop</code></pre> </div> </div> <div class="paragraph"> <p>From your new Hop build:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-bash" data-lang="bash"> ./hop-translator.sh translator.xml &lt;PATH_TO_YOUR_CLONED_HOP_SOURCE_CODE&gt;</code></pre> </div> </div> <div class="paragraph"> <p>The Hop Translator will start, and you’ll see a dialog similar to the one below:</p> </div> <div class="imageblock"> <div class="content"> <img  [...]
+cd hop</code></pre> </div> </div> <div class="paragraph"> <p>From your new Hop build:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-bash" data-lang="bash"> ./hop-translator.sh translator.xml &lt;PATH_TO_YOUR_CLONED_HOP_SOURCE_CODE&gt;</code></pre> </div> </div> <div class="paragraph"> <p>The Hop Translator will start, and you’ll see a dialog similar to the one below:</p> </div> <div class="imageblock"> <div class="content"> <img  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -20,44 +20,4 @@ cd hop</code></pre> </div> </div> <div class="paragraph"> <p>From your new Hop b
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/",
-          "name": "contribution-guides"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/translation-contribution-guide/",
-          "name": "translation-contribution-guide"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/contribution-guides/website-contribution-guide/index.html b/community/contribution-guides/website-contribution-guide/index.html
index c5eaafa..10a8329 100644
--- a/community/contribution-guides/website-contribution-guide/index.html
+++ b/community/contribution-guides/website-contribution-guide/index.html
@@ -2,7 +2,7 @@
   Obtain the documentation sources
   Before you start start working on the documentation…​
   Update or extend the documentation
-  Documentation translations"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/website-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../../_/css/site-a5c153e5c5.css"> <meta name="applica [...]
+  Documentation translations"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/contribution-guides/website-contribution-guide/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta name="applica [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -20,44 +20,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/",
-          "name": "contribution-guides"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  4 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/contribution-guides/website-contribution-guide/",
-          "name": "website-contribution-guide"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/ethos/index.html b/community/ethos/index.html
index 1582a45..96cebce 100644
--- a/community/ethos/index.html
+++ b/community/ethos/index.html
@@ -1,6 +1,6 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Ethos"> <meta property="og:description" content="Community Ethos Great communities make great software!
  Hop wants to be a positive and inclusive community. As an Apache project, we subscribe to the Apache Software Foundation’s Code of Conduct, which is reprinted below.
-   Apache Software Foundation Code of Conduct INTRODUCTION This code of conduct applies to all spaces managed by the Apache Software Foundation, including IRC, all public and private mailing lists, issue trackers, wikis, blogs, Twitter, and any other communication channel used by our communities."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/ethos/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png [...]
+   Apache Software Foundation Code of Conduct INTRODUCTION This code of conduct applies to all spaces managed by the Apache Software Foundation, including IRC, all public and private mailing lists, issue trackers, wikis, blogs, Twitter, and any other communication channel used by our communities."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/ethos/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,37 +18,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/ethos/",
-          "name": "ethos"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/events/index.html b/community/events/index.html
index e503cc2..15e9207 100644
--- a/community/events/index.html
+++ b/community/events/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Events and User Groups"> <meta property="og:description" content="Apache Hop deeply cares about its community and encourages community members to organize local user groups and events. Find out what is happening in your area or native language."> <meta property="og:type" content="article"> <meta property="og:url" content="ht [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Events and User Groups"> <meta property="og:description" content="Apache Hop deeply cares about its community and encourages community members to organize local user groups and events. Find out what is happening in your area or native language."> <meta property="og:type" content="article"> <meta property="og:url" content="ht [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/events/",
-          "name": "events"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/incubator/index.html b/community/incubator/index.html
index 0b5377c..6ca7db5 100644
--- a/community/incubator/index.html
+++ b/community/incubator/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) Maturity Self-Assessment"> <meta property="og:description" content="Self-assessment of Apache Hop&#39;s maturity in preparation for the graduation as a Top Level Project"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/incubator/"><meta pr [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop (Incubating) Maturity Self-Assessment"> <meta property="og:description" content="Self-assessment of Apache Hop&#39;s maturity in preparation for the graduation as a Top Level Project"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/incubator/"><meta pr [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/incubator/",
-          "name": "incubator"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
index acb6a33..d421006 100644
--- a/community/index.html
+++ b/community/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Communities"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/community/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href=" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Communities"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/community/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href=" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/mailing-list/index.html b/community/mailing-list/index.html
index fd214a2..7356b06 100644
--- a/community/mailing-list/index.html
+++ b/community/mailing-list/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Mailing Lists"> <meta property="og:description" content="Use Hop User List You should post and subscriber to the Hop User List for all your questions on using Hop, or how to do X with Hop etc. If in doubt use this list. The other list, Hop Developer List, is for the Hop team to discus development of the actual Hop project; d [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Mailing Lists"> <meta property="og:description" content="Use Hop User List You should post and subscriber to the Hop User List for all your questions on using Hop, or how to do X with Hop etc. If in doubt use this list. The other list, Hop Developer List, is for the Hop team to discus development of the actual Hop project; d [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,37 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/mailing-list/",
-          "name": "mailing-list"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/sources/index.html b/community/sources/index.html
index a60a298..012c258 100644
--- a/community/sources/index.html
+++ b/community/sources/index.html
@@ -2,7 +2,7 @@
  To browse via the web:
  https://gitbox.apache.org/repos/asf/hop.git   ## Checking out from git
  git clone https://gitbox.apache.org/repos/asf/hop.git   Only project developers can commit to the git via this method. SSH must be installed on your client machine. Enter your site password when prompted.
- Using github The source code is mirrored to github, so you can also checkout the source code from github, if you are familiar with using github."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/sources/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel= [...]
+ Using github The source code is mirrored to github, so you can also checkout the source code from github, if you are familiar with using github."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/sources/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel= [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -20,37 +20,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/sources/",
-          "name": "sources"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/support/index.html b/community/support/index.html
index 638d21e..c7db0ab 100644
--- a/community/support/index.html
+++ b/community/support/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Support"> <meta property="og:description" content="Getting Help If you are experiencing problems using Hop then please report your problem to our mailing lists. This allows the entire community to help with your problem.
- If you found an issue or have a feature request, pleaae create a ticket in our JIRA Issue Tracker. Adding plenty of details (stack trace, logs, screenshots, …​) makes it easier for the Hop developers to know what you exactly mean, and will allow us to resolve your ticket faster."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/support/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta propert [...]
+ If you found an issue or have a feature request, pleaae create a ticket in our JIRA Issue Tracker. Adding plenty of details (stack trace, logs, screenshots, …​) makes it easier for the Hop developers to know what you exactly mean, and will allow us to resolve your ticket faster."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/support/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta propert [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,37 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/support/",
-          "name": "support"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/team/index.html b/community/team/index.html
index 708ec3d..f5f03a1 100644
--- a/community/team/index.html
+++ b/community/team/index.html
@@ -11,7 +11,7 @@
      François Papon
  fpapon
   
-   Hans Van Akelyen"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/team/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../_/css/site-a5c153e5c5.css"> <meta name="application-name" content="Apache Hop"> <link rel="manifest" hre [...]
+   Hans Van Akelyen"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/team/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../_/css/site-14ef316f35.css"> <meta name="application-name" content="Apache Hop"> <link rel="manifest" hre [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -29,37 +29,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/team/",
-          "name": "team"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/community/tools/index.html b/community/tools/index.html
index 9619d43..634f9f9 100644
--- a/community/tools/index.html
+++ b/community/tools/index.html
@@ -6,7 +6,7 @@
   Sonarcloud
   Wiki
   Mattermost Chat
-   GitHub All our source code is publicly available on GitHub, GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/tools/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="ico [...]
+   GitHub All our source code is publicly available on GitHub, GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/community/tools/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="community"> <link rel="ico [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -24,37 +24,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/",
-          "name": "community"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/community/tools/",
-          "name": "tools"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/cookie-info/index.html b/cookie-info/index.html
index eeabad4..b042436 100644
--- a/cookie-info/index.html
+++ b/cookie-info/index.html
@@ -1,6 +1,6 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Cookies used by this site"> <meta property="og:description" content="First Party cookies We use cookies to store website settings they contain following items:
    acceptance of our cookie banner
-    Third Party cookies When accepting the cookie banner this website uses cookies to monitor website performance, to do this Google Analytics is used. When your browser supports doNotTrack no cookies are placed on your computer and you will not see a cookie banner from this website."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/cookie-info/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property= [...]
+    Third Party cookies When accepting the cookie banner this website uses cookies to monitor website performance, to do this Google Analytics is used. When your browser supports doNotTrack no cookies are placed on your computer and you will not see a cookie banner from this website."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/cookie-info/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property= [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,30 +18,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/cookie-info/",
-          "name": "cookie-info"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/dev-manual/latest/apache-release/checking-a-release.html b/dev-manual/latest/apache-release/checking-a-release.html
index 2f19f3d..c5fbe89 100644
--- a/dev-manual/latest/apache-release/checking-a-release.html
+++ b/dev-manual/latest/apache-release/checking-a-release.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Checking a Release :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/checking-a-release.html"> <meta name="description" content="After the release manager creates a release as described in xref:apache-release/creating-a-release.adoc[Creating a Release] the voting process starts. This guide will co [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Checking a Release :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/checking-a-release.html"> <meta name="description" content="After the release manager creates a release as described in xref:apache-release/creating-a-release.adoc[Creating a Release] the voting process starts. This guide will co [...]
 cd /tmp/release_check</code></pre> </div> </div> <div class="paragraph"> <p>First check would be to see if the keys and hashes are in order</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"># check the sha512
 
 sha512sum -c apache-hop-X.XX-src.tar.gz.sha512
@@ -55,7 +55,7 @@ mvn clean install
 cd assemblies/client/target
 unzip hop-client-*.zip
 cd hop
-./hop-gui.sh</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_extra_checks"><a class="anchor" href="#_extra_checks"></a>Extra checks</h2> <div class="sectionbody"> <div class="paragraph"> <p>You can also check for unwanted binary files on the checked out tag</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">git ls-files -z | xargs -0 file -b | sort | uniq -c</code></pre> </ [...]
+./hop-gui.sh</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_extra_checks"><a class="anchor" href="#_extra_checks"></a>Extra checks</h2> <div class="sectionbody"> <div class="paragraph"> <p>You can also check for unwanted binary files on the checked out tag</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">git ls-files -z | xargs -0 file -b | sort | uniq -c</code></pre> </ [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/apache-release/creating-a-release.html b/dev-manual/latest/apache-release/creating-a-release.html
index cb057a7..4cc812a 100644
--- a/dev-manual/latest/apache-release/creating-a-release.html
+++ b/dev-manual/latest/apache-release/creating-a-release.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Creating a release :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/creating-a-release.html"> <meta name="description" content="This document includes the steps needed to be taken by the release manager to create a successful release candidate."> <meta name="generator" content="Antora 2.3.4"> <li [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Creating a release :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/creating-a-release.html"> <meta name="description" content="This document includes the steps needed to be taken by the release manager to create a successful release candidate."> <meta name="generator" content="Antora 3.0.1"> <li [...]
 git checkout releaseX.XX
 git push upstream releaseX.XX:releaseX.XX</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_update_the_version_of_the_poms"><a class="anchor" href="#_update_the_version_of_the_poms"></a>update the version of the poms</h2> <div class="sectionbody"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">mvn versions:set -DnewVersion=X.XX -DgenerateBackupPoms=false</code></pre> </div> </div> < [...]
 git commit -m 'Create release version x.xx'
@@ -100,7 +100,7 @@ gpg --send-keys --keyserver keyserver.ubuntu.com &lt;KEY ID&gt;</code></pre> </d
 cd hop_release
 gpg --list-sigs &lt;keyID&gt; &gt;&gt; KEYS
 gpg  --armor --export &lt;keyID&gt; &gt;&gt; KEYS
-svn commit -m "added new public key to KEYS file"</code></pre> </div> </div> </div> </div> </article> <aside class="toc sidebar" data-title="Contents" data-levels="2"> <div class="toc-menu"></div> </aside> </div> </main> </div> <footer> <div class="footer"> <dl> <dt>Overview</dt> <dd><a href="../../../download/">Download</a></dd> <dd><a href="../../../manual/latest/">Getting started</a></dd> </dl> <dl> <dt>Community</dt> <dd><a target="_blank" href="https://issues.apache.org/jira/project [...]
+svn commit -m "added new public key to KEYS file"</code></pre> </div> </div> </div> </div> </article> </div> </main> </div> <footer> <div class="footer"> <dl> <dt>Overview</dt> <dd><a href="../../../download/">Download</a></dd> <dd><a href="../../../manual/latest/">Getting started</a></dd> </dl> <dl> <dt>Community</dt> <dd><a target="_blank" href="https://issues.apache.org/jira/projects/HOP/issues">Jira</a></dd> <dd><a target="_blank" href="https://chat.project-hop.org">Chat</a></dd> <dd [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/apache-release/index.html b/dev-manual/latest/apache-release/index.html
index 16db75a..5f868e7 100644
--- a/dev-manual/latest/apache-release/index.html
+++ b/dev-manual/latest/apache-release/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Release process :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/index.html"> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="../../../_/css/site-a5c153e5c5.css"> <meta property="og:title" content="Release process :: Apache Hop"> <meta property="og:description" content [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Release process :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/index.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Release process :: Apache Hop"> <meta property="og:description" content [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/apache-release/promoting-a-release.html b/dev-manual/latest/apache-release/promoting-a-release.html
index a2af0c7..6b75b25 100644
--- a/dev-manual/latest/apache-release/promoting-a-release.html
+++ b/dev-manual/latest/apache-release/promoting-a-release.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Promoting a release :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/promoting-a-release.html"> <meta name="description" content="After the voting process has ended and the vote passed, following steps need to be taken to promote and create all release artifacts."> <meta name="generator" content= [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Promoting a release :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/apache-release/promoting-a-release.html"> <meta name="description" content="After the voting process has ended and the vote passed, following steps need to be taken to promote and create all release artifacts."> <meta name="generator" content= [...]
 svn co https://dist.apache.org/repos/dist/dev/hop hop_release
 
 # Update
@@ -23,7 +23,7 @@ docker build . -f docker/Dockerfile -t docker.io/apache/hop:X.XX -t docker.io/ap
 docker image push --all-tags docker.io/apache/hop
 
 # Create and push Hop Web
-docker buildx build --platform linux/amd64,linux/arm64 . -f docker/Dockerfile.web -t docker.io/apache/hop-web:X.XX -t docker.io/apache/hop-web:latest --push</code></pre> </div> </div> </div> </div> </article> <aside class="toc sidebar" data-title="Contents" data-levels="2"> <div class="toc-menu"></div> </aside> </div> </main> </div> <footer> <div class="footer"> <dl> <dt>Overview</dt> <dd><a href="../../../download/">Download</a></dd> <dd><a href="../../../manual/latest/">Getting started [...]
+docker buildx build --platform linux/amd64,linux/arm64 . -f docker/Dockerfile.web -t docker.io/apache/hop-web:X.XX -t docker.io/apache/hop-web:latest --push</code></pre> </div> </div> </div> </div> </article> </div> </main> </div> <footer> <div class="footer"> <dl> <dt>Overview</dt> <dd><a href="../../../download/">Download</a></dd> <dd><a href="../../../manual/latest/">Getting started</a></dd> </dl> <dl> <dt>Community</dt> <dd><a target="_blank" href="https://issues.apache.org/jira/proj [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/getting-started.html b/dev-manual/latest/getting-started.html
index 509bb27..a3d7813 100644
--- a/dev-manual/latest/getting-started.html
+++ b/dev-manual/latest/getting-started.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Getting Started :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/getting-started.html"> <meta name="description" content="Welcome to the Hop project! The size of the codebase can perhaps appear to be a bit daunting at first so remember: *Don&#x27;t Panic*! When it comes down to it the codebase is fairly simple  [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Getting Started :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/getting-started.html"> <meta name="description" content="Welcome to the Hop project! The size of the codebase can perhaps appear to be a bit daunting at first so remember: *Don&#x27;t Panic*! When it comes down to it the codebase is fairly simple  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/hopweb/developer-guide.html b/dev-manual/latest/hopweb/developer-guide.html
index 0e79137..61eb02d 100644
--- a/dev-manual/latest/hopweb/developer-guide.html
+++ b/dev-manual/latest/hopweb/developer-guide.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Developer Guide :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/hopweb/developer-guide.html"> <meta name="description" content="RAP is multi user framework by its nature. Every user session is associated with a display. In RAP, Display#getDefault() will not create a new display when it&#x27;s called from non-U [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Developer Guide :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/hopweb/developer-guide.html"> <meta name="description" content="RAP is multi user framework by its nature. Every user session is associated with a display. In RAP, Display#getDefault() will not create a new display when it&#x27;s called from non-U [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/hopweb/hopweb-antipatterns.html b/dev-manual/latest/hopweb/hopweb-antipatterns.html
index e16eefc..dea5a61 100644
--- a/dev-manual/latest/hopweb/hopweb-antipatterns.html
+++ b/dev-manual/latest/hopweb/hopweb-antipatterns.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Developer Antipatterns :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/hopweb/hopweb-antipatterns.html"> <meta name="description" content="Due to the differences between RWT and SWT, there are some anti-patterns that should be avoided when developing webSpoon and (webSpoon-) compatible plugins."> <meta name="g [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Developer Antipatterns :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/hopweb/hopweb-antipatterns.html"> <meta name="description" content="Due to the differences between RWT and SWT, there are some anti-patterns that should be avoided when developing webSpoon and (webSpoon-) compatible plugins."> <meta name="g [...]
   private static GUIResource guiResource;
 
   // Making the constructor private prevents instantiation from outside
@@ -60,7 +60,7 @@
   }
 }</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_avoid_use_of_unimplemented_swt_apis"><a class="anchor" href="#_avoid_use_of_unimplemented_swt_apis"></a>Avoid use of unimplemented SWT APIs</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_example_drawing_on_an_image"><a class="anchor" href="#_example_drawing_on_an_image"></a>Example: drawing on an Image</h3> <div class="paragraph"> <p>SWT can paint on any widgets or image, while RAP/RWT can only pa [...]
   GC gc = new GC( image );
-  gc.drawRectangle( 0, 0, 10, 20 );</code></pre> </div> </div> <div class="paragraph"> <p>but RWT does not. You can see an example of how this limitation has been overcame in <a href="https://github.com/HiromuHota/pdi-dataservice-server-plugin/commit/3a36a606d76eee40244568726d486b2b0c501fcf">pdi-dataservice-server-plugin</a>.</p> </div> </div> </div> </div> </article> <aside class="toc sidebar" data-title="Contents" data-levels="2"> <div class="toc-menu"></div> </aside> </div> </main> </ [...]
+  gc.drawRectangle( 0, 0, 10, 20 );</code></pre> </div> </div> <div class="paragraph"> <p>but RWT does not. You can see an example of how this limitation has been overcame in <a href="https://github.com/HiromuHota/pdi-dataservice-server-plugin/commit/3a36a606d76eee40244568726d486b2b0c501fcf">pdi-dataservice-server-plugin</a>.</p> </div> </div> </div> </div> </article> </div> </main> </div> <footer> <div class="footer"> <dl> <dt>Overview</dt> <dd><a href="../../../download/">Download</a>< [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/hopweb/index.html b/dev-manual/latest/hopweb/index.html
index 5b37068..b92d764 100644
--- a/dev-manual/latest/hopweb/index.html
+++ b/dev-manual/latest/hopweb/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Web Development Guide :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/hopweb/index.html"> <meta name="description" content="Building and setting up your own Hop Web environment is straightforward. The steps to set up the default Docker image are included in a helper script docker/create_hop_web_container.s [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Web Development Guide :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/hopweb/index.html"> <meta name="description" content="Building and setting up your own Hop Web environment is straightforward. The steps to set up the default Docker image are included in a helper script docker/create_hop_web_container.s [...]
 unzip assemblies/web/target/hop.war -d $CATALINA_HOME/webapp
 unzip assemblies/plugins/dist/target/hop-assemblies-*.zip -d $CATALINA_HOME/</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_modify_startup_script"><a class="anchor" href="#_modify_startup_script"></a>Modify startup script</h3> <div class="paragraph"> <p>Configure Tomcat to run Hop by adding the information below to <code>$CATALINA_HOME/bin/startup.sh</code>, anywhere before the last line (<code>exec "$PRGDIR"/"$EXECUTABLE" start "$@"</code>)</p> </div> <div class="listing [...]
 # specify where Hop should store audit information
@@ -33,7 +33,7 @@ export CATALINA_OPTS='${HOP_OPTIONS} -DHOP_AES_ENCODER_KEY="${HOP_AES_ENCODER_KE
       "projectHome" : "${HOP_CONFIG_FOLDER}/projects/samples",
       "configFilename" : "project-config.json"
     } ]
-  }</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_start_tomcat"><a class="anchor" href="#_start_tomcat"></a>Start Tomcat</h2> <div class="sectionbody"> <div class="paragraph"> <p>Run <code>bin/startup.sh</code> (Linux/Mac) or <code>bin/startup.bat</code> (Windows).</p> </div> <div class="paragraph"> <p>Hop Web should only take a couple of seconds to start.</p> </div> <div class="paragraph"> <p>Access through <a href="http://localhost:8080/hop/ui" class="bar [...]
+  }</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_start_tomcat"><a class="anchor" href="#_start_tomcat"></a>Start Tomcat</h2> <div class="sectionbody"> <div class="paragraph"> <p>Run <code>bin/startup.sh</code> (Linux/Mac) or <code>bin/startup.bat</code> (Windows).</p> </div> <div class="paragraph"> <p>Hop Web should only take a couple of seconds to start.</p> </div> <div class="paragraph"> <p>Access through <a href="http://localhost:8080/hop/ui" class="bar [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/index.html b/dev-manual/latest/index.html
index fd9803e..ccdbc64 100644
--- a/dev-manual/latest/index.html
+++ b/dev-manual/latest/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Index Page :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/index.html"> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="../../_/css/site-a5c153e5c5.css"> <meta property="og:title" content="Index Page :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestra [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Index Page :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/index.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Index Page :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orchestra [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/integration-testing.html b/dev-manual/latest/integration-testing.html
index 028c2a6..7b9854d 100644
--- a/dev-manual/latest/integration-testing.html
+++ b/dev-manual/latest/integration-testing.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Integration Testing :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/integration-testing.html"> <meta name="description" content="The Apache Hop team has created an integration testing framework that is being used to test key components of the software."> <meta name="generator" content="Antora 2.3.4"> <link rel [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Integration Testing :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/integration-testing.html"> <meta name="description" content="The Apache Hop team has created an integration testing framework that is being used to test key components of the software."> <meta name="generator" content="Antora 3.0.1"> <link rel [...]
 mvn clean install</pre> </div> </div> </li> <li> <p>Run the Docker Compose script</p> <div class="listingblock"> <div class="content"> <pre>cd integration-tests/scripts
 ./run-tests-docker.sh
 
@@ -45,7 +45,7 @@ for (var i = 0 ; i&lt;expectedValues.length ; i++) {
 }
 
 
-ok;</code></pre> </div> </div> <div class="paragraph"> <p>This script reads the log returned by the previous pipeline and parses it to search for values.</p> </div> </div> </div> <div class="sect1"> <h2 id="_set_the_hop_license_header_file_project_variable"><a class="anchor" href="#_set_the_hop_license_header_file_project_variable"></a>Set the <code>HOP_LICENSE_HEADER_FILE</code> project variable</h2> <div class="sectionbody"> <div class="paragraph"> <p>All files that are shipped with Ap [...]
+ok;</code></pre> </div> </div> <div class="paragraph"> <p>This script reads the log returned by the previous pipeline and parses it to search for values.</p> </div> </div> </div> <div class="sect1"> <h2 id="_set_the_hop_license_header_file_project_variable"><a class="anchor" href="#_set_the_hop_license_header_file_project_variable"></a>Set the <code>HOP_LICENSE_HEADER_FILE</code> project variable</h2> <div class="sectionbody"> <div class="paragraph"> <p>All files that are shipped with Ap [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/internationalisation.html b/dev-manual/latest/internationalisation.html
index fd751e9..c7d00e1 100644
--- a/dev-manual/latest/internationalisation.html
+++ b/dev-manual/latest/internationalisation.html
@@ -1,13 +1,13 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop internationalisation :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/internationalisation.html"> <meta name="description" content="Hop is already being used in many countries across the world where different languages are spoken. As such &quot;internationalisation&quot; represents the support for multiple  [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop internationalisation :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/internationalisation.html"> <meta name="description" content="Hop is already being used in many countries across the world where different languages are spoken. As such &quot;internationalisation&quot; represents the support for multiple  [...]
       root = ID_MAIN_MENU,
       id = ID_MAIN_MENU_FILE,
       label = "i18n::HopGui.Menu.File",
-      parentId = ID_MAIN_MENU)</code></pre> </div> </div> <div class="paragraph"> <p>With the <code><code>i18n:</code></code> prefix the Hop GUI registry knows that it can translate this using the given package and key. If there is no package defined it simply means: use the package from the current class. In our example it is <code><code>org.apache.hop.ui.hopgui</code></code> which means that we can find the message bundles for this class in <code><code>ui/src/main/resources/org/apache/ [...]
+      parentId = ID_MAIN_MENU)</code></pre> </div> </div> <div class="paragraph"> <p>With the <code><code>i18n:</code></code> prefix the Hop GUI registry knows that it can translate this using the given package and key. If there is no package defined it simply means: use the package from the current class. In our example it is <code><code>org.apache.hop.ui.hopgui</code></code> which means that we can find the message bundles for this class in <code><code>ui/src/main/resources/org/apache/ [...]
 HopGui.Menu.File=&amp;File
-....</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_translator_concerns"><a class="anchor" href="#_translator_concerns"></a>Translator concerns</h2> <div class="sectionbody"> <div class="paragraph"> <p>If you think that it&#8217;s quite a bit of a pain to figure out the keys, locations, locale and so on: we agree! To make i18n easy and translating fun we created a tool called Hop Translator. Translator allows you to provide strings for the keys that you use  [...]
+....</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_translator_concerns"><a class="anchor" href="#_translator_concerns"></a>Translator concerns</h2> <div class="sectionbody"> <div class="paragraph"> <p>If you think that it&#8217;s quite a bit of a pain to figure out the keys, locations, locale and so on: we agree! To make i18n easy and translating fun we created a tool called Hop Translator. Translator allows you to provide strings for the keys that you use  [...]
 unzip -q hop-*.zip
 cd hop
-sh hop-translator.sh translator.xml ../../../../</code></pre> </div> </div> <div class="paragraph"> <p>In other words, run Translator and point it to the location of the source code you want to analyze.</p> </div> <div class="sect2"> <h3 id="_do_not_be_too_smart"><a class="anchor" href="#_do_not_be_too_smart"></a>Do not be too smart</h3> <div class="paragraph"> <p>Translator uses a simple Java code scanner to look for patterns like</p> </div> <div class="ulist"> <ul> <li> <p>PKG</p> </li [...]
+sh hop-translator.sh translator.xml ../../../../</code></pre> </div> </div> <div class="paragraph"> <p>In other words, run Translator and point it to the location of the source code you want to analyze.</p> </div> <div class="sect2"> <h3 id="_do_not_be_too_smart"><a class="anchor" href="#_do_not_be_too_smart"></a>Do not be too smart</h3> <div class="paragraph"> <p>Translator uses a simple Java code scanner to look for patterns like</p> </div> <div class="ulist"> <ul> <li> <p>PKG</p> </li [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/metadata-plugins.html b/dev-manual/latest/metadata-plugins.html
index ea60e00..340d737 100644
--- a/dev-manual/latest/metadata-plugins.html
+++ b/dev-manual/latest/metadata-plugins.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Metadata plugins :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/metadata-plugins.html"> <meta name="description" content="Writing metadata plugins is easy in Hop. Any Plain Old Java Object can be used as a starting point."> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="../../_/cs [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Metadata plugins :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/metadata-plugins.html"> <meta name="description" content="Writing metadata plugins is easy in Hop. Any Plain Old Java Object can be used as a starting point."> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../_/cs [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/plugin-development.html b/dev-manual/latest/plugin-development.html
index 8469cd3..442ba1d 100644
--- a/dev-manual/latest/plugin-development.html
+++ b/dev-manual/latest/plugin-development.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Plugin Development :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/plugin-development.html"> <meta name="description" content="This page explains how to develop new plugins with references to make development easy."> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="../../_/css/si [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Plugin Development :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/plugin-development.html"> <meta name="description" content="This page explains how to develop new plugins with references to make development easy."> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../_/css/si [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/plugin-samples.html b/dev-manual/latest/plugin-samples.html
index fa88263..b7f14ee 100644
--- a/dev-manual/latest/plugin-samples.html
+++ b/dev-manual/latest/plugin-samples.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Plugin samples :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/plugin-samples.html"> <meta name="description" content="This document will explain how a developer can add samples to the plugins in the source code so that they will end up in the samples project in the Hop client distribution assembly."> <meta na [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Plugin samples :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/plugin-samples.html"> <meta name="description" content="This document will explain how a developer can add samples to the plugins in the source code so that they will end up in the samples project in the Hop client distribution assembly."> <meta na [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/porting-kettle-plugins.html b/dev-manual/latest/porting-kettle-plugins.html
index affc784..f552630 100644
--- a/dev-manual/latest/porting-kettle-plugins.html
+++ b/dev-manual/latest/porting-kettle-plugins.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Porting Kettle Plugins :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/porting-kettle-plugins.html"> <meta name="description" content="porting Kettle/PDI plugins to Hop is straightforward. This page describes a couple of points developers need to take into account to make the porting process as smooth as possi [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Porting Kettle Plugins :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/porting-kettle-plugins.html"> <meta name="description" content="porting Kettle/PDI plugins to Hop is straightforward. This page describes a couple of points developers need to take into account to make the porting process as smooth as possi [...]
     &lt;repository&gt;
       &lt;id&gt;Apache&lt;/id&gt;
       &lt;url&gt;https://repository.apache.org/snapshots/&lt;/url&gt;
@@ -10,15 +10,15 @@
         &lt;enabled&gt;false&lt;/enabled&gt;
       &lt;/releases&gt;
     &lt;/repository&gt;
-  &lt;/repositories&gt;</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_api_changes"><a class="anchor" href="#_api_changes"></a>API changes</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_interface_naming"><a class="anchor" href="#_interface_naming"></a>Interface naming</h3> <div class="paragraph"> <p>All interface classes have changed from &lt;Name&gt;Interface to I&lt;Name&gt;. For example: <strong>RowMetaInterface &#8594; IRowMeta</strong></p> </div>  [...]
+  &lt;/repositories&gt;</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_api_changes"><a class="anchor" href="#_api_changes"></a>API changes</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_interface_naming"><a class="anchor" href="#_interface_naming"></a>Interface naming</h3> <div class="paragraph"> <p>All interface classes have changed from &lt;Name&gt;Interface to I&lt;Name&gt;. For example: <strong>RowMetaInterface &#8594; IRowMeta</strong></p> </div>  [...]
 
  ...
 
-}</code></pre> </div> </div> <div class="paragraph"> <p>The same is true for your implementation of ITransformMeta:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code>public class SampleMeta extends BaseTransformMeta implements ITransformMeta&lt;Sample, SampleData&gt; {
+}</code></pre> </div> </div> <div class="paragraph"> <p>The same is true for your implementation of ITransformMeta:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-none hljs">public class SampleMeta extends BaseTransformMeta implements ITransformMeta&lt;Sample, SampleData&gt; {
 
  ...
 
-}</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_repository"><a class="anchor" href="#_repository"></a>Repository</h2> <div class="sectionbody"> <div class="paragraph"> <p>Any references to Repository, including parameters and the saveRep() and loadRep() methods in Transforms and Actions can be safely removed</p> </div> </div> </div> <div class="sect1"> <h2 id="_variablespace"><a class="anchor" href="#_variablespace"></a>VariableSpace</h2> <div class="sectio [...]
+}</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_repository"><a class="anchor" href="#_repository"></a>Repository</h2> <div class="sectionbody"> <div class="paragraph"> <p>Any references to Repository, including parameters and the saveRep() and loadRep() methods in Transforms and Actions can be safely removed</p> </div> </div> </div> <div class="sect1"> <h2 id="_variablespace"><a class="anchor" href="#_variablespace"></a>VariableSpace</h2> <div class="sectio [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/sdk/hop-sdk.html b/dev-manual/latest/sdk/hop-sdk.html
index 86ef1db..7213093 100644
--- a/dev-manual/latest/sdk/hop-sdk.html
+++ b/dev-manual/latest/sdk/hop-sdk.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>The Hop SDK :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/sdk/hop-sdk.html"> <meta name="description" content="First, we need to initialize the Hop API. This means we load configuration details, search for and load plugins and so on."> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" hre [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>The Hop SDK :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/sdk/hop-sdk.html"> <meta name="description" content="First, we need to initialize the Hop API. This means we load configuration details, search for and load plugins and so on."> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" hre [...]
   "path-to-your-filename.hpl",   // The filename
   metadataProvider,             // See above
   true,                        // set internal variables
@@ -78,7 +78,7 @@ workflowMeta.addAction(dummyMeta);
 // Add a hop between both
 //
 WorkflowHopMeta startDummyHop = new WorkflowHopMeta(startMeta, dummyMeta);
-workflowMeta.addWorkflowHop(generatorDummyHop);</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_workflow_execution"><a class="anchor" href="#_workflow_execution"></a>Workflow execution</h3> <div class="paragraph"> <p>Workflow engines are also plugins. Which plugin is used to execute your workflow metadata is specified in a <a href="../../../manual/latest/workflow/workflow-run-configurations/workflow-run-configurations.html" class="page">Workflow Run Configuration</a>.</p>  [...]
+workflowMeta.addWorkflowHop(generatorDummyHop);</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_workflow_execution"><a class="anchor" href="#_workflow_execution"></a>Workflow execution</h3> <div class="paragraph"> <p>Workflow engines are also plugins. Which plugin is used to execute your workflow metadata is specified in a <a href="../../../manual/latest/workflow/workflow-run-configurations/workflow-run-configurations.html" class="xref page">Workflow Run Configuration</a>. [...]
   variables,           // see above
   "local",            // The name of the run configuration defined in the metadata
   metadataProvider,  // The metadata provider to resolve the run configuration details
@@ -91,7 +91,7 @@ workflowMeta.addWorkflowHop(generatorDummyHop);</code></pre> </div> </div> </div
 // When you get the result, the execution has completed.
 //
 Result result = workflowEngine.startExecution();</code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_logging"><a class="anchor" href="#_logging"></a>Logging</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_logging_registry"><a class="anchor" href="#_logging_registry"></a>Logging Registry</h3> <div class="paragraph"> <p>Everything that executes something worth our time is registering its own Log Channel in the hop <code>LoggingRegistry</code>. Every log [...]
-List&lt;HopLoggingEvent&gt; events = getLogBufferFromTo( logChannelId, false, 0, lastNr);</code></pre> </div> </div> <div class="paragraph"> <p>The details allow you to see which line was an error, what the timestamp was, to which executable it belonged and so on.</p> </div> <div class="paragraph"> <p>If you just want to see the flattened logging text you can ask the appender for the information:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highligh [...]
+List&lt;HopLoggingEvent&gt; events = getLogBufferFromTo( logChannelId, false, 0, lastNr);</code></pre> </div> </div> <div class="paragraph"> <p>The details allow you to see which line was an error, what the timestamp was, to which executable it belonged and so on.</p> </div> <div class="paragraph"> <p>If you just want to see the flattened logging text you can ask the appender for the information:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highligh [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/sdk/index.html b/dev-manual/latest/sdk/index.html
index 4042f82..f0ab54a 100644
--- a/dev-manual/latest/sdk/index.html
+++ b/dev-manual/latest/sdk/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Index Page :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/sdk/index.html"> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="../../../_/css/site-a5c153e5c5.css"> <meta property="og:title" content="Index Page :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Or [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Index Page :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/sdk/index.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Index Page :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Or [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/setup-dev-environment.html b/dev-manual/latest/setup-dev-environment.html
index 27c0388..0125def 100644
--- a/dev-manual/latest/setup-dev-environment.html
+++ b/dev-manual/latest/setup-dev-environment.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Setting up your development environment :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/setup-dev-environment.html"> <meta name="description" content="Thank you for wanting to help out with the development of Apache Hop. We really value your help. We assume you&#x27;re going to be using the IntelliJ IDEA integ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Setting up your development environment :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/setup-dev-environment.html"> <meta name="description" content="Thank you for wanting to help out with the development of Apache Hop. We really value your help. We assume you&#x27;re going to be using the IntelliJ IDEA integ [...]
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
@@ -13,9 +13,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.</code></pre> </div> </div> <div class="paragraph"> <p>Set this as the default copyright profile for all files.</p> </div> <div class="paragraph"> <p>If you want to create samples for the Apache Hop project, to be included in the source code, you can set variable HOP_LICENSE_HEADER_FILE in your environment(s) and point it to a file containing the license above. It will automatically insert the license header in your .hpl and .hwf files.</p> </div> </div> </d [...]
 $ unzip hop-client-*.zip
-$ cd hop</pre> </div> </div> <div class="paragraph"> <p>On Windows, run <code>hop-gui.bat</code>, on Mac and Linux, run <code>hop-gui.sh</code></p> </div> </div> </div> <div class="sect1"> <h2 id="_debugging_on_linux"><a class="anchor" href="#_debugging_on_linux"></a>Debugging on linux</h2> <div class="sectionbody"> <div class="paragraph"> <p>To debug the Hop GUI or a long running pipeline or workflow you can change the launch scripts and uncomment the line with the 5005 port in it:</p>  [...]
+$ cd hop</pre> </div> </div> <div class="paragraph"> <p>On Windows, run <code>hop-gui.bat</code>, on Mac and Linux, run <code>hop-gui.sh</code></p> </div> </div> </div> <div class="sect1"> <h2 id="_debugging_on_linux"><a class="anchor" href="#_debugging_on_linux"></a>Debugging on linux</h2> <div class="sectionbody"> <div class="paragraph"> <p>To debug the Hop GUI or a long running pipeline or workflow you can change the launch scripts and uncomment the line with the 5005 port in it:</p>  [...]
 #
-HOP_OPTIONS="${HOP_OPTIONS} -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_debugging_on_windows"><a class="anchor" href="#_debugging_on_windows"></a>Debugging on Windows</h2> <div class="sectionbody"> <div class="paragraph"> <p>To debug the Hop GUI you should run <code>hop-gui.bat DEBUG</code> passing DEBUG as parameter</p> </div> </div> </div> <div class="sect1">  [...]
+HOP_OPTIONS="${HOP_OPTIONS} -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_debugging_on_windows"><a class="anchor" href="#_debugging_on_windows"></a>Debugging on Windows</h2> <div class="sectionbody"> <div class="paragraph"> <p>To debug the Hop GUI you should run <code>hop-gui.bat DEBUG</code> passing DEBUG as parameter</p> </div> </div> </div> <div class="sect1">  [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/snippets/hop-license-header-file.html b/dev-manual/latest/snippets/hop-license-header-file.html
index c4a06a1..3db7420 100644
--- a/dev-manual/latest/snippets/hop-license-header-file.html
+++ b/dev-manual/latest/snippets/hop-license-header-file.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/snippets/hop-license-header-file.html"> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="../../../_/css/site-a5c153e5c5.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content=" [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/snippets/hop-license-header-file.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content=" [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/start-your-own-plugin.html b/dev-manual/latest/start-your-own-plugin.html
index 1254552..8b1a37a 100644
--- a/dev-manual/latest/start-your-own-plugin.html
+++ b/dev-manual/latest/start-your-own-plugin.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Creating a remote plugin :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/start-your-own-plugin.html"> <meta name="description" content="This guide is to help you set up and start development on a plugin that will not be included in the Hop repository. For more information on plugin types and how to add them to [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Creating a remote plugin :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/start-your-own-plugin.html"> <meta name="description" content="This guide is to help you set up and start development on a plugin that will not be included in the Hop repository. For more information on plugin types and how to add them to [...]
             &lt;groupId&gt;org.apache.hop&lt;/groupId&gt;
             &lt;artifactId&gt;hop-core&lt;/artifactId&gt;
             &lt;version&gt;${hop.version}&lt;/version&gt;
@@ -54,7 +54,7 @@
                 &lt;/exclusion&gt;
             &lt;/exclusions&gt;
             &lt;scope&gt;compile&lt;/scope&gt;
-        &lt;/dependency&gt;</code></pre> </div> </div> <div class="paragraph"> <p>When compiling you will notice a plugins directory is added to the debug location, this contains all plugins distributed by the Apache Hop team, the assemblies for the sample transform and action follow the same logic to make sure they are copied to the correct location too, this allows the Hop plugin loader to find and load all the plugins for the GUI.</p> </div> </div> </div> </div> </article> <aside clas [...]
+        &lt;/dependency&gt;</code></pre> </div> </div> <div class="paragraph"> <p>When compiling you will notice a plugins directory is added to the debug location, this contains all plugins distributed by the Apache Hop team, the assemblies for the sample transform and action follow the same logic to make sure they are copied to the correct location too, this allows the Hop plugin loader to find and load all the plugins for the GUI.</p> </div> </div> </div> </div> </article> </div> </ma [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/dev-manual/latest/svg-files.html b/dev-manual/latest/svg-files.html
index 16e145c..33140a7 100644
--- a/dev-manual/latest/svg-files.html
+++ b/dev-manual/latest/svg-files.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>SVG Files :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/svg-files.html"> <meta name="description" content="When adding or modifying SVG files in the Apache Hop project we kindly ask developers to keep the concerns below in mind."> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href=".. [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>SVG Files :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/dev-manual/latest/svg-files.html"> <meta name="description" content="When adding or modifying SVG files in the Apache Hop project we kindly ask developers to keep the concerns below in mind."> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href=".. [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
diff --git a/docs/architecture/index.html b/docs/architecture/index.html
index 0fa59fd..f29f1a7 100644
--- a/docs/architecture/index.html
+++ b/docs/architecture/index.html
@@ -1,5 +1,5 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Architecture"> <meta property="og:description" content="The architecture of Hop is very simple in essence: separate out any metadata from runtime code and tooling.
- Doing this, Hop aims to have a minimal installation footprint and wants to be stateless to facilitate execution on a variety of platforms like Spark and Flink, but also in a variety of scenarios like running in different life cycles such as development, test, acceptance, production, unit testing and continuous integration."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/docs/architecture/"><meta property="og:image" content="https://h [...]
+ Doing this, Hop aims to have a minimal installation footprint and wants to be stateless to facilitate execution on a variety of platforms like Spark and Flink, but also in a variety of scenarios like running in different life cycles such as development, test, acceptance, production, unit testing and continuous integration."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/docs/architecture/"><meta property="og:image" content="https://h [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -17,37 +17,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/docs/",
-          "name": "docs"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/docs/architecture/",
-          "name": "architecture"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index cf306e7..d6023f6 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Docs"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/docs/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../favicon-1 [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Docs"> <meta property="og:description" content="Apache Hop - Hop Orchestration Platform"> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/docs/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> <link rel="icon" type="image/png" href="../favicon-1 [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/docs/",
-          "name": "docs"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/docs/roadmap/index.html b/docs/roadmap/index.html
index 47e8ce8..55f131c 100644
--- a/docs/roadmap/index.html
+++ b/docs/roadmap/index.html
@@ -1,7 +1,7 @@
 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Roadmap"> <meta property="og:description" content="The Apache Hop team just released version 1.0.0 and became a top level project at the Apache Software Foundation. The immediate next goal for us is to release version 1.1.0 with almost 200 fixes and improvements.
  Here are a few directions that we want to explore for the future of our software:
    Set up a software marketplace where 3rd party plugins can be found
-  Pluggable field expressions in transforms and actions"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/docs/roadmap/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="docs"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../_/css/site-a5c153e5c5.css"> <meta name="application-name" content="Apache H [...]
+  Pluggable field expressions in transforms and actions"> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/docs/roadmap/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"><meta property="article:section" content="docs"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <link rel="stylesheet" href="../../_/css/site-14ef316f35.css"> <meta name="application-name" content="Apache H [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -19,37 +19,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/docs/",
-          "name": "docs"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  3 ,
-        "item": {
-          "@id": "https://hop.apache.org/docs/roadmap/",
-          "name": "roadmap"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/download/index.html b/download/index.html
index 0b38258..7140f05 100644
--- a/download/index.html
+++ b/download/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Download"> <meta property="og:description" content="Download Apache Hop source and binary releases or Docker images for Hop and Hop Web."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/download/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Download"> <meta property="og:description" content="Download Apache Hop source and binary releases or Docker images for Hop and Hop Web."> <meta property="og:type" content="article"> <meta property="og:url" content="https://hop.apache.org/download/"><meta property="og:image" content="https://hop.apache.org/img/hop-logo.png"> [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,30 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    },{
-        "@type": "ListItem",
-        "position":  2 ,
-        "item": {
-          "@id": "https://hop.apache.org/download/",
-          "name": "download"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/index.html b/index.html
index 9f9950b..d6a8397 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-<!doctype html> <html lang="en"> <head> <meta name="generator" content="Hugo 0.83.1"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop"> <meta property="og:description" content="Apache Hop - The Hop Orchestration Platform aims to facilitate all aspects of data and metadata orchestration."> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/"><meta prope [...]
+<!doctype html> <html lang="en"> <head> <meta name="generator" content="Hugo 0.83.1"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta property="og:title" content="Apache Hop"> <meta property="og:description" content="Apache Hop - The Hop Orchestration Platform aims to facilitate all aspects of data and metadata orchestration."> <meta property="og:type" content="website"> <meta property="og:url" content="https://hop.apache.org/"><meta prope [...]
             (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
             m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -16,23 +16,4 @@
     }).autocomplete
     search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
     function focusSearchInput () { document.querySelector('#search-input').focus() }
-    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> {
-    "@context": "http://schema.org",
-    "@type": "Organization",
-    "name": "Hop",
-    "url": "https:\/\/hop.apache.org\/"
-    , "sameAs": ["https://twitter.com/ApacheHop"]
-    , "logo": "\/img\/hop-logo.svg"
-    , "description": "Apache Hop - Hop Orchestration Platform" 
-  } </script> <script type="application/ld+json"> {
-  "@context": "http://schema.org",
-  "@type": "BreadcrumbList",
-  "itemListElement": [{
-        "@type": "ListItem",
-        "position":  1 ,
-        "item": {
-          "@id": "https://hop.apache.org/",
-          "name": "Hop"
-        }
-    }]
-} </script> </body> </html> 
\ No newline at end of file
+    if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Hop", "url": "https:\/\/hop.apache.org\/" , "sameAs": ["https://twitter.com/ApacheHop"] , "logo": "\/img\/hop-logo.svg" , "description": "Apache Hop - Hop Orchestration Platf [...]
\ No newline at end of file
diff --git a/manual/1.1.0/_images/beam-getting-started-beam-file-definition.png b/manual/0/_images/beam-getting-started-beam-file-definition.png
similarity index 100%
rename from manual/1.1.0/_images/beam-getting-started-beam-file-definition.png
rename to manual/0/_images/beam-getting-started-beam-file-definition.png
diff --git a/manual/1.1.0/_images/beam-getting-started-flushes-metric.png b/manual/0/_images/beam-getting-started-flushes-metric.png
similarity index 100%
rename from manual/1.1.0/_images/beam-getting-started-flushes-metric.png
rename to manual/0/_images/beam-getting-started-flushes-metric.png
diff --git a/manual/1.1.0/_images/beam-getting-started-input-transforms-on-dataflow.png b/manual/0/_images/beam-getting-started-input-transforms-on-dataflow.png
similarity index 100%
rename from manual/1.1.0/_images/beam-getting-started-input-transforms-on-dataflow.png
rename to manual/0/_images/beam-getting-started-input-transforms-on-dataflow.png
diff --git a/manual/1.1.0/_images/best-practices-naming.png b/manual/0/_images/best-practices-naming.png
similarity index 100%
rename from manual/1.1.0/_images/best-practices-naming.png
rename to manual/0/_images/best-practices-naming.png
diff --git a/manual/1.1.0/_images/concepts/environments.png b/manual/0/_images/concepts/environments.png
similarity index 100%
rename from manual/1.1.0/_images/concepts/environments.png
rename to manual/0/_images/concepts/environments.png
diff --git a/manual/1.1.0/_images/concepts/pipeline.png b/manual/0/_images/concepts/pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/concepts/pipeline.png
rename to manual/0/_images/concepts/pipeline.png
diff --git a/manual/1.1.0/_images/concepts/workflow.png b/manual/0/_images/concepts/workflow.png
similarity index 100%
rename from manual/1.1.0/_images/concepts/workflow.png
rename to manual/0/_images/concepts/workflow.png
diff --git a/manual/1.1.0/_images/copy-as-pipeline-action.png b/manual/0/_images/copy-as-pipeline-action.png
similarity index 100%
rename from manual/1.1.0/_images/copy-as-pipeline-action.png
rename to manual/0/_images/copy-as-pipeline-action.png
diff --git a/manual/1.1.0/_images/error-handling-context-dialog.png b/manual/0/_images/error-handling-context-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/error-handling-context-dialog.png
rename to manual/0/_images/error-handling-context-dialog.png
diff --git a/manual/1.1.0/_images/error-handling-dialog.png b/manual/0/_images/error-handling-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/error-handling-dialog.png
rename to manual/0/_images/error-handling-dialog.png
diff --git a/manual/1.1.0/_images/error-handling-hop-option.png b/manual/0/_images/error-handling-hop-option.png
similarity index 100%
rename from manual/1.1.0/_images/error-handling-hop-option.png
rename to manual/0/_images/error-handling-hop-option.png
diff --git a/manual/1.1.0/_images/error-handling-hop.png b/manual/0/_images/error-handling-hop.png
similarity index 100%
rename from manual/1.1.0/_images/error-handling-hop.png
rename to manual/0/_images/error-handling-hop.png
diff --git a/manual/1.1.0/_images/error-handling-output.png b/manual/0/_images/error-handling-output.png
similarity index 100%
rename from manual/1.1.0/_images/error-handling-output.png
rename to manual/0/_images/error-handling-output.png
diff --git a/manual/1.1.0/_images/generic_connection.png b/manual/0/_images/generic_connection.png
similarity index 100%
rename from manual/1.1.0/_images/generic_connection.png
rename to manual/0/_images/generic_connection.png
diff --git a/manual/1.1.0/_images/getting-started-input-process-output-sample.png b/manual/0/_images/getting-started-input-process-output-sample.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started-input-process-output-sample.png
rename to manual/0/_images/getting-started-input-process-output-sample.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-add-transform.png b/manual/0/_images/getting-started/getting-started-add-transform.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-add-transform.png
rename to manual/0/_images/getting-started/getting-started-add-transform.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-add-two-transforms.png b/manual/0/_images/getting-started/getting-started-add-two-transforms.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-add-two-transforms.png
rename to manual/0/_images/getting-started/getting-started-add-two-transforms.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-click-anywhere.png b/manual/0/_images/getting-started/getting-started-click-anywhere.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-click-anywhere.png
rename to manual/0/_images/getting-started/getting-started-click-anywhere.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-create-hop.png b/manual/0/_images/getting-started/getting-started-create-hop.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-create-hop.png
rename to manual/0/_images/getting-started/getting-started-create-hop.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-new-workflow-abort.png b/manual/0/_images/getting-started/getting-started-new-workflow-abort.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-new-workflow-abort.png
rename to manual/0/_images/getting-started/getting-started-new-workflow-abort.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-new-workflow-actions.png b/manual/0/_images/getting-started/getting-started-new-workflow-actions.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-new-workflow-actions.png
rename to manual/0/_images/getting-started/getting-started-new-workflow-actions.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-new-workflow-pipeline-action.png b/manual/0/_images/getting-started/getting-started-new-workflow-pipeline-action.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-new-workflow-pipeline-action.png
rename to manual/0/_images/getting-started/getting-started-new-workflow-pipeline-action.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-new-workflow.png b/manual/0/_images/getting-started/getting-started-new-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-new-workflow.png
rename to manual/0/_images/getting-started/getting-started-new-workflow.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-pipeline-toolbar.png b/manual/0/_images/getting-started/getting-started-pipeline-toolbar.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-pipeline-toolbar.png
rename to manual/0/_images/getting-started/getting-started-pipeline-toolbar.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-run-workflow-config-dialog.png b/manual/0/_images/getting-started/getting-started-run-workflow-config-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-run-workflow-config-dialog.png
rename to manual/0/_images/getting-started/getting-started-run-workflow-config-dialog.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-run-workflow-dialog.png b/manual/0/_images/getting-started/getting-started-run-workflow-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-run-workflow-dialog.png
rename to manual/0/_images/getting-started/getting-started-run-workflow-dialog.png
diff --git a/manual/1.1.0/_images/getting-started/getting-started-run-workflow-with-config.png b/manual/0/_images/getting-started/getting-started-run-workflow-with-config.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/getting-started-run-workflow-with-config.png
rename to manual/0/_images/getting-started/getting-started-run-workflow-with-config.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-1.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-1.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-1.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-1.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-2.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-2.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-2.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-2.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-3.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-3.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-3.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-3.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-4.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-4.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-4.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-4.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-5.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-5.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-5.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-5.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-6.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-6.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-6.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-6.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-7.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-7.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-7.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-7.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-8.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-8.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-8.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-8.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-9.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-9.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-9.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-9.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-add-two-transforms.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-add-two-transforms.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-add-two-transforms.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-add-two-transforms.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-create-hop.png b/manual/0/_images/getting-started/gs-hop-gui-create-pipeline-create-hop.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-pipeline-create-hop.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-pipeline-create-hop.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-1.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-1.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-1.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-1.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-2.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-2.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-2.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-2.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-3.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-3.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-3.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-3.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-4.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-4.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-4.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-4.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-5.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-5.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-5.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-5.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-6.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-6.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-6.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-6.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-7.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-7.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-7.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-7.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-add-pipeline-action.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-add-pipeline-action.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-add-pipeline-action.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-add-pipeline-action.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-run.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-run.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-run.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-run.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-save.png b/manual/0/_images/getting-started/gs-hop-gui-create-workflow-save.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-create-workflow-save.png
rename to manual/0/_images/getting-started/gs-hop-gui-create-workflow-save.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-overview-1.png b/manual/0/_images/getting-started/gs-hop-gui-overview-1.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-overview-1.png
rename to manual/0/_images/getting-started/gs-hop-gui-overview-1.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-overview-2.png b/manual/0/_images/getting-started/gs-hop-gui-overview-2.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-overview-2.png
rename to manual/0/_images/getting-started/gs-hop-gui-overview-2.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-1.png b/manual/0/_images/getting-started/gs-hop-gui-run-pipeline-1.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-1.png
rename to manual/0/_images/getting-started/gs-hop-gui-run-pipeline-1.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-2.png b/manual/0/_images/getting-started/gs-hop-gui-run-pipeline-2.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-2.png
rename to manual/0/_images/getting-started/gs-hop-gui-run-pipeline-2.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-3.png b/manual/0/_images/getting-started/gs-hop-gui-run-pipeline-3.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-3.png
rename to manual/0/_images/getting-started/gs-hop-gui-run-pipeline-3.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-4.png b/manual/0/_images/getting-started/gs-hop-gui-run-pipeline-4.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-4.png
rename to manual/0/_images/getting-started/gs-hop-gui-run-pipeline-4.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-5.png b/manual/0/_images/getting-started/gs-hop-gui-run-pipeline-5.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-5.png
rename to manual/0/_images/getting-started/gs-hop-gui-run-pipeline-5.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-6.png b/manual/0/_images/getting-started/gs-hop-gui-run-pipeline-6.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-6.png
rename to manual/0/_images/getting-started/gs-hop-gui-run-pipeline-6.png
diff --git a/manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-7.png b/manual/0/_images/getting-started/gs-hop-gui-run-pipeline-7.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/gs-hop-gui-run-pipeline-7.png
rename to manual/0/_images/getting-started/gs-hop-gui-run-pipeline-7.png
diff --git a/manual/1.1.0/_images/getting-started/icons/Antu_edit-redo.svg b/manual/0/_images/getting-started/icons/Antu_edit-redo.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/Antu_edit-redo.svg
rename to manual/0/_images/getting-started/icons/Antu_edit-redo.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/Antu_edit-undo.svg b/manual/0/_images/getting-started/icons/Antu_edit-undo.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/Antu_edit-undo.svg
rename to manual/0/_images/getting-started/icons/Antu_edit-undo.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/HOP.svg b/manual/0/_images/getting-started/icons/HOP.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/HOP.svg
rename to manual/0/_images/getting-started/icons/HOP.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/align-bottom.svg b/manual/0/_images/getting-started/icons/align-bottom.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/align-bottom.svg
rename to manual/0/_images/getting-started/icons/align-bottom.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/align-left.svg b/manual/0/_images/getting-started/icons/align-left.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/align-left.svg
rename to manual/0/_images/getting-started/icons/align-left.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/align-right.svg b/manual/0/_images/getting-started/icons/align-right.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/align-right.svg
rename to manual/0/_images/getting-started/icons/align-right.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/align-top.svg b/manual/0/_images/getting-started/icons/align-top.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/align-top.svg
rename to manual/0/_images/getting-started/icons/align-top.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/back.svg b/manual/0/_images/getting-started/icons/back.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/back.svg
rename to manual/0/_images/getting-started/icons/back.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/cleanup.svg b/manual/0/_images/getting-started/icons/cleanup.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/cleanup.svg
rename to manual/0/_images/getting-started/icons/cleanup.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/close.svg b/manual/0/_images/getting-started/icons/close.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/close.svg
rename to manual/0/_images/getting-started/icons/close.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/debug.svg b/manual/0/_images/getting-started/icons/debug.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/debug.svg
rename to manual/0/_images/getting-started/icons/debug.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/distribute-horizontally.svg b/manual/0/_images/getting-started/icons/distribute-horizontally.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/distribute-horizontally.svg
rename to manual/0/_images/getting-started/icons/distribute-horizontally.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/distribute-vertically.svg b/manual/0/_images/getting-started/icons/distribute-vertically.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/distribute-vertically.svg
rename to manual/0/_images/getting-started/icons/distribute-vertically.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/job.svg b/manual/0/_images/getting-started/icons/job.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/job.svg
rename to manual/0/_images/getting-started/icons/job.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/pause.svg b/manual/0/_images/getting-started/icons/pause.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/pause.svg
rename to manual/0/_images/getting-started/icons/pause.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/print.png b/manual/0/_images/getting-started/icons/print.png
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/print.png
rename to manual/0/_images/getting-started/icons/print.png
diff --git a/manual/1.1.0/_images/getting-started/icons/run.svg b/manual/0/_images/getting-started/icons/run.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/run.svg
rename to manual/0/_images/getting-started/icons/run.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/run_option.svg b/manual/0/_images/getting-started/icons/run_option.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/run_option.svg
rename to manual/0/_images/getting-started/icons/run_option.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/show-all.svg b/manual/0/_images/getting-started/icons/show-all.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/show-all.svg
rename to manual/0/_images/getting-started/icons/show-all.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/show-selected.svg b/manual/0/_images/getting-started/icons/show-selected.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/show-selected.svg
rename to manual/0/_images/getting-started/icons/show-selected.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/snap-to-grid.svg b/manual/0/_images/getting-started/icons/snap-to-grid.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/snap-to-grid.svg
rename to manual/0/_images/getting-started/icons/snap-to-grid.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/stop.svg b/manual/0/_images/getting-started/icons/stop.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/stop.svg
rename to manual/0/_images/getting-started/icons/stop.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/trans.svg b/manual/0/_images/getting-started/icons/trans.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/trans.svg
rename to manual/0/_images/getting-started/icons/trans.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/view-as-xml.svg b/manual/0/_images/getting-started/icons/view-as-xml.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/view-as-xml.svg
rename to manual/0/_images/getting-started/icons/view-as-xml.svg
diff --git a/manual/1.1.0/_images/getting-started/icons/view.svg b/manual/0/_images/getting-started/icons/view.svg
similarity index 100%
rename from manual/1.1.0/_images/getting-started/icons/view.svg
rename to manual/0/_images/getting-started/icons/view.svg
diff --git a/manual/1.1.0/_images/hop-gui/environment/create-environment-dialogue.png b/manual/0/_images/hop-gui/environment/create-environment-dialogue.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/create-environment-dialogue.png
rename to manual/0/_images/hop-gui/environment/create-environment-dialogue.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/create-project-dialog.png b/manual/0/_images/hop-gui/environment/create-project-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/create-project-dialog.png
rename to manual/0/_images/hop-gui/environment/create-project-dialog.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/edit-environment-menu.png b/manual/0/_images/hop-gui/environment/edit-environment-menu.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/edit-environment-menu.png
rename to manual/0/_images/hop-gui/environment/edit-environment-menu.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/environment-add.svg b/manual/0/_images/hop-gui/environment/environment-add.svg
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/environment-add.svg
rename to manual/0/_images/hop-gui/environment/environment-add.svg
diff --git a/manual/1.1.0/_images/hop-gui/environment/environment-delete.svg b/manual/0/_images/hop-gui/environment/environment-delete.svg
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/environment-delete.svg
rename to manual/0/_images/hop-gui/environment/environment-delete.svg
diff --git a/manual/1.1.0/_images/hop-gui/environment/environment-edit.svg b/manual/0/_images/hop-gui/environment/environment-edit.svg
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/environment-edit.svg
rename to manual/0/_images/hop-gui/environment/environment-edit.svg
diff --git a/manual/1.1.0/_images/hop-gui/environment/environment-files.png b/manual/0/_images/hop-gui/environment/environment-files.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/environment-files.png
rename to manual/0/_images/hop-gui/environment/environment-files.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/environment-variables.png b/manual/0/_images/hop-gui/environment/environment-variables.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/environment-variables.png
rename to manual/0/_images/hop-gui/environment/environment-variables.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/new-environment-dialog.png b/manual/0/_images/hop-gui/environment/new-environment-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/new-environment-dialog.png
rename to manual/0/_images/hop-gui/environment/new-environment-dialog.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/new-environment.png b/manual/0/_images/hop-gui/environment/new-environment.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/new-environment.png
rename to manual/0/_images/hop-gui/environment/new-environment.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/project-add.svg b/manual/0/_images/hop-gui/environment/project-add.svg
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/project-add.svg
rename to manual/0/_images/hop-gui/environment/project-add.svg
diff --git a/manual/1.1.0/_images/hop-gui/environment/project-delete.svg b/manual/0/_images/hop-gui/environment/project-delete.svg
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/project-delete.svg
rename to manual/0/_images/hop-gui/environment/project-delete.svg
diff --git a/manual/1.1.0/_images/hop-gui/environment/project-edit.svg b/manual/0/_images/hop-gui/environment/project-edit.svg
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/project-edit.svg
rename to manual/0/_images/hop-gui/environment/project-edit.svg
diff --git a/manual/1.1.0/_images/hop-gui/environment/switch-environment-list.png b/manual/0/_images/hop-gui/environment/switch-environment-list.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/switch-environment-list.png
rename to manual/0/_images/hop-gui/environment/switch-environment-list.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/switch-environment.png b/manual/0/_images/hop-gui/environment/switch-environment.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/switch-environment.png
rename to manual/0/_images/hop-gui/environment/switch-environment.png
diff --git a/manual/1.1.0/_images/hop-gui/environment/switch-project-list.png b/manual/0/_images/hop-gui/environment/switch-project-list.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/environment/switch-project-list.png
rename to manual/0/_images/hop-gui/environment/switch-project-list.png
diff --git a/manual/1.1.0/_images/hop-gui/file-dialog.png b/manual/0/_images/hop-gui/file-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/file-dialog.png
rename to manual/0/_images/hop-gui/file-dialog.png
diff --git a/manual/1.1.0/_images/hop-gui/git-visual-diff.png b/manual/0/_images/hop-gui/git-visual-diff.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/git-visual-diff.png
rename to manual/0/_images/hop-gui/git-visual-diff.png
diff --git a/manual/1.1.0/_images/hop-gui/hop-gui-git-toolbar.png b/manual/0/_images/hop-gui/hop-gui-git-toolbar.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/hop-gui-git-toolbar.png
rename to manual/0/_images/hop-gui/hop-gui-git-toolbar.png
diff --git a/manual/1.1.0/_images/hop-gui/hop-gui-no-git.png b/manual/0/_images/hop-gui/hop-gui-no-git.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/hop-gui-no-git.png
rename to manual/0/_images/hop-gui/hop-gui-no-git.png
diff --git a/manual/1.1.0/_images/hop-gui/new-work-item.png b/manual/0/_images/hop-gui/new-work-item.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/new-work-item.png
rename to manual/0/_images/hop-gui/new-work-item.png
diff --git a/manual/1.1.0/_images/hop-gui/new.svg b/manual/0/_images/hop-gui/new.svg
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/new.svg
rename to manual/0/_images/hop-gui/new.svg
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/basic-pipeline.png b/manual/0/_images/hop-gui/pipeline/basic-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/basic-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/basic-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/debug-pipeline.png b/manual/0/_images/hop-gui/pipeline/debug-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/debug-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/debug-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/executed-pipeline.png b/manual/0/_images/hop-gui/pipeline/executed-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/executed-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/executed-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/failed-pipeline.png b/manual/0/_images/hop-gui/pipeline/failed-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/failed-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/failed-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/hop-type.png b/manual/0/_images/hop-gui/pipeline/hop-type.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/hop-type.png
rename to manual/0/_images/hop-gui/pipeline/hop-type.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/logging-pipeline.png b/manual/0/_images/hop-gui/pipeline/logging-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/logging-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/logging-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/monitoring-pipeline.png b/manual/0/_images/hop-gui/pipeline/monitoring-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/monitoring-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/monitoring-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/new-pipeline.png b/manual/0/_images/hop-gui/pipeline/new-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/new-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/new-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/parameters-pipeline.png b/manual/0/_images/hop-gui/pipeline/parameters-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/parameters-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/parameters-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-buffers.png b/manual/0/_images/hop-gui/pipeline/partitionining-buffers.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-buffers.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-buffers.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-partition-schema.png b/manual/0/_images/hop-gui/pipeline/partitionining-partition-schema.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-partition-schema.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-partition-schema.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-partitioned.png b/manual/0/_images/hop-gui/pipeline/partitionining-partitioned.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-partitioned.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-partitioned.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-preview-2.png b/manual/0/_images/hop-gui/pipeline/partitionining-preview-2.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-preview-2.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-preview-2.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-preview-table.png b/manual/0/_images/hop-gui/pipeline/partitionining-preview-table.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-preview-table.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-preview-table.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-preview.png b/manual/0/_images/hop-gui/pipeline/partitionining-preview.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-preview.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-preview.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-swimlanes-1.png b/manual/0/_images/hop-gui/pipeline/partitionining-swimlanes-1.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-swimlanes-1.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-swimlanes-1.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-swimlanes-2.png b/manual/0/_images/hop-gui/pipeline/partitionining-swimlanes-2.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-swimlanes-2.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-swimlanes-2.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/partitionining-table.png b/manual/0/_images/hop-gui/pipeline/partitionining-table.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/partitionining-table.png
rename to manual/0/_images/hop-gui/pipeline/partitionining-table.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/preview-menu-pipeline.PNG b/manual/0/_images/hop-gui/pipeline/preview-menu-pipeline.PNG
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/preview-menu-pipeline.PNG
rename to manual/0/_images/hop-gui/pipeline/preview-menu-pipeline.PNG
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/preview-pipeline.png b/manual/0/_images/hop-gui/pipeline/preview-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/preview-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/preview-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/properties-pipeline.png b/manual/0/_images/hop-gui/pipeline/properties-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/properties-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/properties-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/run-configuration-pipeline.png b/manual/0/_images/hop-gui/pipeline/run-configuration-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/run-configuration-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/run-configuration-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/save-pipeline.png b/manual/0/_images/hop-gui/pipeline/save-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/save-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/save-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/simple-pipeline.png b/manual/0/_images/hop-gui/pipeline/simple-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/simple-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/simple-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/transform-metrics-pipeline.png b/manual/0/_images/hop-gui/pipeline/transform-metrics-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/transform-metrics-pipeline.png
rename to manual/0/_images/hop-gui/pipeline/transform-metrics-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/pipeline/transforms.png b/manual/0/_images/hop-gui/pipeline/transforms.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/pipeline/transforms.png
rename to manual/0/_images/hop-gui/pipeline/transforms.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-action.png b/manual/0/_images/hop-gui/popup-action.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-action.png
rename to manual/0/_images/hop-gui/popup-action.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-collapsed.png b/manual/0/_images/hop-gui/popup-collapsed.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-collapsed.png
rename to manual/0/_images/hop-gui/popup-collapsed.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-create-item.png b/manual/0/_images/hop-gui/popup-create-item.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-create-item.png
rename to manual/0/_images/hop-gui/popup-create-item.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-description.png b/manual/0/_images/hop-gui/popup-description.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-description.png
rename to manual/0/_images/hop-gui/popup-description.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-hop-pipeline.png b/manual/0/_images/hop-gui/popup-hop-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-hop-pipeline.png
rename to manual/0/_images/hop-gui/popup-hop-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-hop-workflow.png b/manual/0/_images/hop-gui/popup-hop-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-hop-workflow.png
rename to manual/0/_images/hop-gui/popup-hop-workflow.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-no-categories-no-fixed-width.png b/manual/0/_images/hop-gui/popup-no-categories-no-fixed-width.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-no-categories-no-fixed-width.png
rename to manual/0/_images/hop-gui/popup-no-categories-no-fixed-width.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-pipeline.png b/manual/0/_images/hop-gui/popup-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-pipeline.png
rename to manual/0/_images/hop-gui/popup-pipeline.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-toolbar.png b/manual/0/_images/hop-gui/popup-toolbar.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-toolbar.png
rename to manual/0/_images/hop-gui/popup-toolbar.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-transform.png b/manual/0/_images/hop-gui/popup-transform.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-transform.png
rename to manual/0/_images/hop-gui/popup-transform.png
diff --git a/manual/1.1.0/_images/hop-gui/popup-workflow.png b/manual/0/_images/hop-gui/popup-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/popup-workflow.png
rename to manual/0/_images/hop-gui/popup-workflow.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/basic-workflow.png b/manual/0/_images/hop-gui/workflow/basic-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/basic-workflow.png
rename to manual/0/_images/hop-gui/workflow/basic-workflow.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/new-run-configuration.png b/manual/0/_images/hop-gui/workflow/new-run-configuration.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/new-run-configuration.png
rename to manual/0/_images/hop-gui/workflow/new-run-configuration.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/parameters-properties.png b/manual/0/_images/hop-gui/workflow/parameters-properties.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/parameters-properties.png
rename to manual/0/_images/hop-gui/workflow/parameters-properties.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/settings-properties.png b/manual/0/_images/hop-gui/workflow/settings-properties.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/settings-properties.png
rename to manual/0/_images/hop-gui/workflow/settings-properties.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/simple-workflow.png b/manual/0/_images/hop-gui/workflow/simple-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/simple-workflow.png
rename to manual/0/_images/hop-gui/workflow/simple-workflow.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/workflow-action.png b/manual/0/_images/hop-gui/workflow/workflow-action.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/workflow-action.png
rename to manual/0/_images/hop-gui/workflow/workflow-action.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/workflow-properties.png b/manual/0/_images/hop-gui/workflow/workflow-properties.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/workflow-properties.png
rename to manual/0/_images/hop-gui/workflow/workflow-properties.png
diff --git a/manual/1.1.0/_images/hop-gui/workflow/workflow-run-configuration.png b/manual/0/_images/hop-gui/workflow/workflow-run-configuration.png
similarity index 100%
rename from manual/1.1.0/_images/hop-gui/workflow/workflow-run-configuration.png
rename to manual/0/_images/hop-gui/workflow/workflow-run-configuration.png
diff --git a/manual/1.1.0/_images/hop-run/hop-run-options.png b/manual/0/_images/hop-run/hop-run-options.png
similarity index 100%
rename from manual/1.1.0/_images/hop-run/hop-run-options.png
rename to manual/0/_images/hop-run/hop-run-options.png
diff --git a/manual/1.1.0/_images/hop-server/hop-server-options.png b/manual/0/_images/hop-server/hop-server-options.png
similarity index 100%
rename from manual/1.1.0/_images/hop-server/hop-server-options.png
rename to manual/0/_images/hop-server/hop-server-options.png
diff --git a/manual/1.1.0/_images/hop-server/hop-server-status.png b/manual/0/_images/hop-server/hop-server-status.png
similarity index 100%
rename from manual/1.1.0/_images/hop-server/hop-server-status.png
rename to manual/0/_images/hop-server/hop-server-status.png
diff --git a/manual/1.1.0/_images/hop-server/web-service-example.png b/manual/0/_images/hop-server/web-service-example.png
similarity index 100%
rename from manual/1.1.0/_images/hop-server/web-service-example.png
rename to manual/0/_images/hop-server/web-service-example.png
diff --git a/manual/1.1.0/_images/hop-server/web-service-pipeline-example.png b/manual/0/_images/hop-server/web-service-pipeline-example.png
similarity index 100%
rename from manual/1.1.0/_images/hop-server/web-service-pipeline-example.png
rename to manual/0/_images/hop-server/web-service-pipeline-example.png
diff --git a/manual/1.1.0/_images/hop-web.png b/manual/0/_images/hop-web.png
similarity index 100%
rename from manual/1.1.0/_images/hop-web.png
rename to manual/0/_images/hop-web.png
diff --git a/manual/latest/_images/how-to-guides/web-services-in-docker/json-output.png b/manual/0/_images/how-to-guides/web-services-in-docker/json-output.png
similarity index 100%
rename from manual/latest/_images/how-to-guides/web-services-in-docker/json-output.png
rename to manual/0/_images/how-to-guides/web-services-in-docker/json-output.png
diff --git a/manual/latest/_images/how-to-guides/web-services-in-docker/metadata.png b/manual/0/_images/how-to-guides/web-services-in-docker/metadata.png
similarity index 100%
rename from manual/latest/_images/how-to-guides/web-services-in-docker/metadata.png
rename to manual/0/_images/how-to-guides/web-services-in-docker/metadata.png
diff --git a/manual/latest/_images/how-to-guides/web-services-in-docker/pipeline.png b/manual/0/_images/how-to-guides/web-services-in-docker/pipeline.png
similarity index 100%
rename from manual/latest/_images/how-to-guides/web-services-in-docker/pipeline.png
rename to manual/0/_images/how-to-guides/web-services-in-docker/pipeline.png
diff --git a/manual/latest/_images/how-to-guides/web-services-in-docker/result.png b/manual/0/_images/how-to-guides/web-services-in-docker/result.png
similarity index 100%
rename from manual/latest/_images/how-to-guides/web-services-in-docker/result.png
rename to manual/0/_images/how-to-guides/web-services-in-docker/result.png
diff --git a/manual/latest/_images/how-to-guides/web-services-in-docker/simplified-architecture.png b/manual/0/_images/how-to-guides/web-services-in-docker/simplified-architecture.png
similarity index 100%
rename from manual/latest/_images/how-to-guides/web-services-in-docker/simplified-architecture.png
rename to manual/0/_images/how-to-guides/web-services-in-docker/simplified-architecture.png
diff --git a/manual/1.1.0/_images/icons/Cassandra_logo.svg b/manual/0/_images/icons/Cassandra_logo.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/Cassandra_logo.svg
rename to manual/0/_images/icons/Cassandra_logo.svg
diff --git a/manual/1.1.0/_images/icons/MongoDB_Leaf_FullColor_RGB.svg b/manual/0/_images/icons/MongoDB_Leaf_FullColor_RGB.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/MongoDB_Leaf_FullColor_RGB.svg
rename to manual/0/_images/icons/MongoDB_Leaf_FullColor_RGB.svg
diff --git a/manual/1.1.0/_images/icons/NEO4J.svg b/manual/0/_images/icons/NEO4J.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/NEO4J.svg
rename to manual/0/_images/icons/NEO4J.svg
diff --git a/manual/1.1.0/_images/icons/Test_tube_icon.svg b/manual/0/_images/icons/Test_tube_icon.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/Test_tube_icon.svg
rename to manual/0/_images/icons/Test_tube_icon.svg
diff --git a/manual/1.1.0/_images/icons/add.svg b/manual/0/_images/icons/add.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/add.svg
rename to manual/0/_images/icons/add.svg
diff --git a/manual/1.1.0/_images/icons/arrow-right.svg b/manual/0/_images/icons/arrow-right.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/arrow-right.svg
rename to manual/0/_images/icons/arrow-right.svg
diff --git a/manual/1.1.0/_images/icons/beam-logo.svg b/manual/0/_images/icons/beam-logo.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/beam-logo.svg
rename to manual/0/_images/icons/beam-logo.svg
diff --git a/manual/1.1.0/_images/icons/bookmark-add.svg b/manual/0/_images/icons/bookmark-add.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/bookmark-add.svg
rename to manual/0/_images/icons/bookmark-add.svg
diff --git a/manual/1.1.0/_images/icons/bookmark.svg b/manual/0/_images/icons/bookmark.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/bookmark.svg
rename to manual/0/_images/icons/bookmark.svg
diff --git a/manual/1.1.0/_images/icons/data_orch.svg b/manual/0/_images/icons/data_orch.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/data_orch.svg
rename to manual/0/_images/icons/data_orch.svg
diff --git a/manual/1.1.0/_images/icons/database.svg b/manual/0/_images/icons/database.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/database.svg
rename to manual/0/_images/icons/database.svg
diff --git a/manual/1.1.0/_images/icons/dataset.svg b/manual/0/_images/icons/dataset.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/dataset.svg
rename to manual/0/_images/icons/dataset.svg
diff --git a/manual/1.1.0/_images/icons/delete.svg b/manual/0/_images/icons/delete.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/delete.svg
rename to manual/0/_images/icons/delete.svg
diff --git a/manual/1.1.0/_images/icons/developer.svg b/manual/0/_images/icons/developer.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/developer.svg
rename to manual/0/_images/icons/developer.svg
diff --git a/manual/1.1.0/_images/icons/folder-add.svg b/manual/0/_images/icons/folder-add.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/folder-add.svg
rename to manual/0/_images/icons/folder-add.svg
diff --git a/manual/1.1.0/_images/icons/folder.svg b/manual/0/_images/icons/folder.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/folder.svg
rename to manual/0/_images/icons/folder.svg
diff --git a/manual/1.1.0/_images/icons/git-add.svg b/manual/0/_images/icons/git-add.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/git-add.svg
rename to manual/0/_images/icons/git-add.svg
diff --git a/manual/1.1.0/_images/icons/git-commit.svg b/manual/0/_images/icons/git-commit.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/git-commit.svg
rename to manual/0/_images/icons/git-commit.svg
diff --git a/manual/1.1.0/_images/icons/git-info.svg b/manual/0/_images/icons/git-info.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/git-info.svg
rename to manual/0/_images/icons/git-info.svg
diff --git a/manual/1.1.0/_images/icons/git-revert.svg b/manual/0/_images/icons/git-revert.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/git-revert.svg
rename to manual/0/_images/icons/git-revert.svg
diff --git a/manual/1.1.0/_images/icons/home.svg b/manual/0/_images/icons/home.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/home.svg
rename to manual/0/_images/icons/home.svg
diff --git a/manual/1.1.0/_images/icons/info.svg b/manual/0/_images/icons/info.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/info.svg
rename to manual/0/_images/icons/info.svg
diff --git a/manual/1.1.0/_images/icons/logo_icon.svg b/manual/0/_images/icons/logo_icon.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/logo_icon.svg
rename to manual/0/_images/icons/logo_icon.svg
diff --git a/manual/1.1.0/_images/icons/metadata.svg b/manual/0/_images/icons/metadata.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/metadata.svg
rename to manual/0/_images/icons/metadata.svg
diff --git a/manual/1.1.0/_images/icons/navigate-back.svg b/manual/0/_images/icons/navigate-back.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/navigate-back.svg
rename to manual/0/_images/icons/navigate-back.svg
diff --git a/manual/1.1.0/_images/icons/navigate-forward.svg b/manual/0/_images/icons/navigate-forward.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/navigate-forward.svg
rename to manual/0/_images/icons/navigate-forward.svg
diff --git a/manual/1.1.0/_images/icons/navigate-up.svg b/manual/0/_images/icons/navigate-up.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/navigate-up.svg
rename to manual/0/_images/icons/navigate-up.svg
diff --git a/manual/1.1.0/_images/icons/neo4j_logo.svg b/manual/0/_images/icons/neo4j_logo.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/neo4j_logo.svg
rename to manual/0/_images/icons/neo4j_logo.svg
diff --git a/manual/1.1.0/_images/icons/partition_schema.svg b/manual/0/_images/icons/partition_schema.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/partition_schema.svg
rename to manual/0/_images/icons/partition_schema.svg
diff --git a/manual/1.1.0/_images/icons/pipeline-log.svg b/manual/0/_images/icons/pipeline-log.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/pipeline-log.svg
rename to manual/0/_images/icons/pipeline-log.svg
diff --git a/manual/1.1.0/_images/icons/pipeline.svg b/manual/0/_images/icons/pipeline.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/pipeline.svg
rename to manual/0/_images/icons/pipeline.svg
diff --git a/manual/1.1.0/_images/icons/pipeline_run_config.svg b/manual/0/_images/icons/pipeline_run_config.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/pipeline_run_config.svg
rename to manual/0/_images/icons/pipeline_run_config.svg
diff --git a/manual/1.1.0/_images/icons/play.svg b/manual/0/_images/icons/play.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/play.svg
rename to manual/0/_images/icons/play.svg
diff --git a/manual/1.1.0/_images/icons/plugin.svg b/manual/0/_images/icons/plugin.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/plugin.svg
rename to manual/0/_images/icons/plugin.svg
diff --git a/manual/1.1.0/_images/icons/preview.svg b/manual/0/_images/icons/preview.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/preview.svg
rename to manual/0/_images/icons/preview.svg
diff --git a/manual/1.1.0/_images/icons/probe.svg b/manual/0/_images/icons/probe.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/probe.svg
rename to manual/0/_images/icons/probe.svg
diff --git a/manual/1.1.0/_images/icons/project.svg b/manual/0/_images/icons/project.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/project.svg
rename to manual/0/_images/icons/project.svg
diff --git a/manual/1.1.0/_images/icons/pull.svg b/manual/0/_images/icons/pull.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/pull.svg
rename to manual/0/_images/icons/pull.svg
diff --git a/manual/1.1.0/_images/icons/push.svg b/manual/0/_images/icons/push.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/push.svg
rename to manual/0/_images/icons/push.svg
diff --git a/manual/1.1.0/_images/icons/refresh.svg b/manual/0/_images/icons/refresh.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/refresh.svg
rename to manual/0/_images/icons/refresh.svg
diff --git a/manual/1.1.0/_images/icons/rename.svg b/manual/0/_images/icons/rename.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/rename.svg
rename to manual/0/_images/icons/rename.svg
diff --git a/manual/1.1.0/_images/icons/search.svg b/manual/0/_images/icons/search.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/search.svg
rename to manual/0/_images/icons/search.svg
diff --git a/manual/1.1.0/_images/icons/server.svg b/manual/0/_images/icons/server.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/server.svg
rename to manual/0/_images/icons/server.svg
diff --git a/manual/1.1.0/_images/icons/splunk.svg b/manual/0/_images/icons/splunk.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/splunk.svg
rename to manual/0/_images/icons/splunk.svg
diff --git a/manual/1.1.0/_images/icons/test.svg b/manual/0/_images/icons/test.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/test.svg
rename to manual/0/_images/icons/test.svg
diff --git a/manual/1.1.0/_images/icons/workflow-log.svg b/manual/0/_images/icons/workflow-log.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/workflow-log.svg
rename to manual/0/_images/icons/workflow-log.svg
diff --git a/manual/1.1.0/_images/icons/workflow.svg b/manual/0/_images/icons/workflow.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/workflow.svg
rename to manual/0/_images/icons/workflow.svg
diff --git a/manual/1.1.0/_images/icons/workflow_run_config.svg b/manual/0/_images/icons/workflow_run_config.svg
similarity index 100%
rename from manual/1.1.0/_images/icons/workflow_run_config.svg
rename to manual/0/_images/icons/workflow_run_config.svg
diff --git a/manual/1.1.0/_images/logging/custom-action-logging-level.png b/manual/0/_images/logging/custom-action-logging-level.png
similarity index 100%
rename from manual/1.1.0/_images/logging/custom-action-logging-level.png
rename to manual/0/_images/logging/custom-action-logging-level.png
diff --git a/manual/1.1.0/_images/logging/custom-logging-actions.png b/manual/0/_images/logging/custom-logging-actions.png
similarity index 100%
rename from manual/1.1.0/_images/logging/custom-logging-actions.png
rename to manual/0/_images/logging/custom-logging-actions.png
diff --git a/manual/1.1.0/_images/logging/custom-transform-logging-level.png b/manual/0/_images/logging/custom-transform-logging-level.png
similarity index 100%
rename from manual/1.1.0/_images/logging/custom-transform-logging-level.png
rename to manual/0/_images/logging/custom-transform-logging-level.png
diff --git a/manual/1.1.0/_images/mongodb-input-screenshot-connection-tab.png b/manual/0/_images/mongodb-input-screenshot-connection-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-input-screenshot-connection-tab.png
rename to manual/0/_images/mongodb-input-screenshot-connection-tab.png
diff --git a/manual/1.1.0/_images/mongodb-input-screenshot-fields-tab.png b/manual/0/_images/mongodb-input-screenshot-fields-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-input-screenshot-fields-tab.png
rename to manual/0/_images/mongodb-input-screenshot-fields-tab.png
diff --git a/manual/1.1.0/_images/mongodb-input-screenshot-input-tab.png b/manual/0/_images/mongodb-input-screenshot-input-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-input-screenshot-input-tab.png
rename to manual/0/_images/mongodb-input-screenshot-input-tab.png
diff --git a/manual/1.1.0/_images/mongodb-input-screenshot-query-tab.png b/manual/0/_images/mongodb-input-screenshot-query-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-input-screenshot-query-tab.png
rename to manual/0/_images/mongodb-input-screenshot-query-tab.png
diff --git a/manual/1.1.0/_images/mongodb-output-screenshot-connection-tab.png b/manual/0/_images/mongodb-output-screenshot-connection-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-output-screenshot-connection-tab.png
rename to manual/0/_images/mongodb-output-screenshot-connection-tab.png
diff --git a/manual/1.1.0/_images/mongodb-output-screenshot-fields-tab.png b/manual/0/_images/mongodb-output-screenshot-fields-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-output-screenshot-fields-tab.png
rename to manual/0/_images/mongodb-output-screenshot-fields-tab.png
diff --git a/manual/1.1.0/_images/mongodb-output-screenshot-indexes-tab.png b/manual/0/_images/mongodb-output-screenshot-indexes-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-output-screenshot-indexes-tab.png
rename to manual/0/_images/mongodb-output-screenshot-indexes-tab.png
diff --git a/manual/1.1.0/_images/mongodb-output-screenshot-output-tab.png b/manual/0/_images/mongodb-output-screenshot-output-tab.png
similarity index 100%
rename from manual/1.1.0/_images/mongodb-output-screenshot-output-tab.png
rename to manual/0/_images/mongodb-output-screenshot-output-tab.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-bypass-transform.png b/manual/0/_images/pipeline-unit-testing-bypass-transform.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-bypass-transform.png
rename to manual/0/_images/pipeline-unit-testing-bypass-transform.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-create-data-set.png b/manual/0/_images/pipeline-unit-testing-create-data-set.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-create-data-set.png
rename to manual/0/_images/pipeline-unit-testing-create-data-set.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-create-unit-test.png b/manual/0/_images/pipeline-unit-testing-create-unit-test.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-create-unit-test.png
rename to manual/0/_images/pipeline-unit-testing-create-unit-test.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-data-sets-enabled.png b/manual/0/_images/pipeline-unit-testing-data-sets-enabled.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-data-sets-enabled.png
rename to manual/0/_images/pipeline-unit-testing-data-sets-enabled.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-data-sets.png b/manual/0/_images/pipeline-unit-testing-data-sets.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-data-sets.png
rename to manual/0/_images/pipeline-unit-testing-data-sets.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-pipeline.png b/manual/0/_images/pipeline-unit-testing-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-pipeline.png
rename to manual/0/_images/pipeline-unit-testing-pipeline.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-run-unit-tests-pipeline.png b/manual/0/_images/pipeline-unit-testing-run-unit-tests-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-run-unit-tests-pipeline.png
rename to manual/0/_images/pipeline-unit-testing-run-unit-tests-pipeline.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-test-failed.png b/manual/0/_images/pipeline-unit-testing-test-failed.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-test-failed.png
rename to manual/0/_images/pipeline-unit-testing-test-failed.png
diff --git a/manual/1.1.0/_images/pipeline-unit-testing-workflow.png b/manual/0/_images/pipeline-unit-testing-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/pipeline-unit-testing-workflow.png
rename to manual/0/_images/pipeline-unit-testing-workflow.png
diff --git a/manual/1.1.0/_images/run-configuration/configuration-selection.png b/manual/0/_images/run-configuration/configuration-selection.png
similarity index 100%
rename from manual/1.1.0/_images/run-configuration/configuration-selection.png
rename to manual/0/_images/run-configuration/configuration-selection.png
diff --git a/manual/1.1.0/_images/system-properties-menu.png b/manual/0/_images/system-properties-menu.png
similarity index 100%
rename from manual/1.1.0/_images/system-properties-menu.png
rename to manual/0/_images/system-properties-menu.png
diff --git a/manual/1.1.0/_images/tech/neo4j/beers-wikipedia-graph-workflow.png b/manual/0/_images/tech/neo4j/beers-wikipedia-graph-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/beers-wikipedia-graph-workflow.png
rename to manual/0/_images/tech/neo4j/beers-wikipedia-graph-workflow.png
diff --git a/manual/1.1.0/_images/tech/neo4j/cleanup-remove-everything-workflow.png b/manual/0/_images/tech/neo4j/cleanup-remove-everything-workflow.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/cleanup-remove-everything-workflow.png
rename to manual/0/_images/tech/neo4j/cleanup-remove-everything-workflow.png
diff --git a/manual/1.1.0/_images/tech/neo4j/data-loading-graph-output-transform.png b/manual/0/_images/tech/neo4j/data-loading-graph-output-transform.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/data-loading-graph-output-transform.png
rename to manual/0/_images/tech/neo4j/data-loading-graph-output-transform.png
diff --git a/manual/1.1.0/_images/tech/neo4j/neo4j-cypher-complex-returns-pipeline.png b/manual/0/_images/tech/neo4j/neo4j-cypher-complex-returns-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/neo4j-cypher-complex-returns-pipeline.png
rename to manual/0/_images/tech/neo4j/neo4j-cypher-complex-returns-pipeline.png
diff --git a/manual/1.1.0/_images/tech/neo4j/neo4j-cypher-unwind-simple-collect-into-map.png b/manual/0/_images/tech/neo4j/neo4j-cypher-unwind-simple-collect-into-map.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/neo4j-cypher-unwind-simple-collect-into-map.png
rename to manual/0/_images/tech/neo4j/neo4j-cypher-unwind-simple-collect-into-map.png
diff --git a/manual/1.1.0/_images/tech/neo4j/neo4j-cypher-unwind-simple.png b/manual/0/_images/tech/neo4j/neo4j-cypher-unwind-simple.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/neo4j-cypher-unwind-simple.png
rename to manual/0/_images/tech/neo4j/neo4j-cypher-unwind-simple.png
diff --git a/manual/1.1.0/_images/tech/neo4j/neo4j-output-parallel-load-pipeline.png b/manual/0/_images/tech/neo4j/neo4j-output-parallel-load-pipeline.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/neo4j-output-parallel-load-pipeline.png
rename to manual/0/_images/tech/neo4j/neo4j-output-parallel-load-pipeline.png
diff --git a/manual/1.1.0/_images/tech/neo4j/neo4j-output-parallel-load-transform.png b/manual/0/_images/tech/neo4j/neo4j-output-parallel-load-transform.png
similarity index 100%
rename from manual/1.1.0/_images/tech/neo4j/neo4j-output-parallel-load-transform.png
rename to manual/0/_images/tech/neo4j/neo4j-output-parallel-load-transform.png
diff --git a/manual/1.1.0/_images/test_image.jpg b/manual/0/_images/test_image.jpg
similarity index 100%
rename from manual/1.1.0/_images/test_image.jpg
rename to manual/0/_images/test_image.jpg
diff --git a/manual/1.1.0/_images/transforms/javascript-dialog.png b/manual/0/_images/transforms/javascript-dialog.png
similarity index 100%
rename from manual/1.1.0/_images/transforms/javascript-dialog.png
rename to manual/0/_images/transforms/javascript-dialog.png
diff --git a/manual/1.1.0/_images/transforms/javascript-functions.png b/manual/0/_images/transforms/javascript-functions.png
similarity index 100%
rename from manual/1.1.0/_images/transforms/javascript-functions.png
rename to manual/0/_images/transforms/javascript-functions.png
diff --git a/manual/1.1.0/_images/transforms/javascript-script-right-click.png b/manual/0/_images/transforms/javascript-script-right-click.png
similarity index 100%
rename from manual/1.1.0/_images/transforms/javascript-script-right-click.png
rename to manual/0/_images/transforms/javascript-script-right-click.png
diff --git a/manual/1.1.0/_images/variable-indicator.png b/manual/0/_images/variable-indicator.png
similarity index 100%
rename from manual/1.1.0/_images/variable-indicator.png
rename to manual/0/_images/variable-indicator.png
diff --git a/manual/0/best-practices/index.html b/manual/0/best-practices/index.html
new file mode 100644
index 0000000..af4dff8
--- /dev/null
+++ b/manual/0/best-practices/index.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Best practices :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/best-practices/index.html"> <meta name="description" content="Apache Hop best practices are a set of guiding principles. These best practices apply to the way you design, run, test, deploy and maintain a Hop project."> <meta name="generator" content="A [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/concepts.html b/manual/0/concepts.html
new file mode 100644
index 0000000..fdddebe
--- /dev/null
+++ b/manual/0/concepts.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Concepts :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/concepts.html"> <meta name="description" content="Hop comes with a number of concepts: a variety of tools, a large number of metadata types, projects and enviromments. At the core of literally everything in Hop is metadata."> <meta name="generator" content=" [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases.html b/manual/0/database/databases.html
new file mode 100644
index 0000000..71cf5a1
--- /dev/null
+++ b/manual/0/database/databases.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Database Plugins :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases.html"> <meta name="description" content="Hop supports tens of databases out of the box. If your preferred database has no specific support, you can probably still connect through a generic database connection."> <meta name="generat [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/as400.html b/manual/0/database/databases/as400.html
new file mode 100644
index 0000000..3d4fe24
--- /dev/null
+++ b/manual/0/database/databases/as400.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>AS400 :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/as400.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="AS400 :: Apache Hop"> <meta property="og:description" content="Apache Hop - Ho [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/cache.html b/manual/0/database/databases/cache.html
new file mode 100644
index 0000000..8ab292d
--- /dev/null
+++ b/manual/0/database/databases/cache.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Cache :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/cache.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Cache :: Apache Hop"> <meta property="og:description" content="Apache Hop - Ho [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/clickhouse.html b/manual/0/database/databases/clickhouse.html
new file mode 100644
index 0000000..8459a09
--- /dev/null
+++ b/manual/0/database/databases/clickhouse.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>ClickHouse :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/clickhouse.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="ClickHouse :: Apache Hop"> <meta property="og:description" content=" [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/db2.html b/manual/0/database/databases/db2.html
new file mode 100644
index 0000000..fca7e71
--- /dev/null
+++ b/manual/0/database/databases/db2.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>DB2 :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/db2.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="DB2 :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orch [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/derby.html b/manual/0/database/databases/derby.html
new file mode 100644
index 0000000..065de8a
--- /dev/null
+++ b/manual/0/database/databases/derby.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Apache Derby :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/derby.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Apache Derby :: Apache Hop"> <meta property="og:description" content="A [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/doris.html b/manual/0/database/databases/doris.html
new file mode 100644
index 0000000..7f3de3a
--- /dev/null
+++ b/manual/0/database/databases/doris.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Apache Doris :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/doris.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Apache Doris :: Apache Hop"> <meta property="og:description" content="A [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/exasol.html b/manual/0/database/databases/exasol.html
new file mode 100644
index 0000000..1f15ada
--- /dev/null
+++ b/manual/0/database/databases/exasol.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Exasol :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/exasol.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Exasol :: Apache Hop"> <meta property="og:description" content="Apache Hop - [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/firebird.html b/manual/0/database/databases/firebird.html
new file mode 100644
index 0000000..6945937
--- /dev/null
+++ b/manual/0/database/databases/firebird.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Firebird :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/firebird.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Firebird :: Apache Hop"> <meta property="og:description" content="Apache [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/googlebigquery.html b/manual/0/database/databases/googlebigquery.html
new file mode 100644
index 0000000..9c1d7cb
--- /dev/null
+++ b/manual/0/database/databases/googlebigquery.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Google BigQuery :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/googlebigquery.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Google BigQuery :: Apache Hop"> <meta property="og:descript [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/greenplum.html b/manual/0/database/databases/greenplum.html
new file mode 100644
index 0000000..4827645
--- /dev/null
+++ b/manual/0/database/databases/greenplum.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Greenplum :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/greenplum.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Greenplum :: Apache Hop"> <meta property="og:description" content="Apa [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/h2.html b/manual/0/database/databases/h2.html
new file mode 100644
index 0000000..9eb0e93
--- /dev/null
+++ b/manual/0/database/databases/h2.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>H2 :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/h2.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="H2 :: Apache Hop"> <meta property="og:description" content="Apache Hop - Hop Orchest [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/hypersonic.html b/manual/0/database/databases/hypersonic.html
new file mode 100644
index 0000000..2b347e7
--- /dev/null
+++ b/manual/0/database/databases/hypersonic.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hypersonic :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/hypersonic.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Hypersonic :: Apache Hop"> <meta property="og:description" content=" [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/infinidb.html b/manual/0/database/databases/infinidb.html
new file mode 100644
index 0000000..7d56723
--- /dev/null
+++ b/manual/0/database/databases/infinidb.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>InfiniDB :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/infinidb.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="InfiniDB :: Apache Hop"> <meta property="og:description" content="Apache [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/infobright.html b/manual/0/database/databases/infobright.html
new file mode 100644
index 0000000..186d5fe
--- /dev/null
+++ b/manual/0/database/databases/infobright.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Infobright DB :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/infobright.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Infobright DB :: Apache Hop"> <meta property="og:description" con [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/informix.html b/manual/0/database/databases/informix.html
new file mode 100644
index 0000000..7b01a8d
--- /dev/null
+++ b/manual/0/database/databases/informix.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Informix :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/informix.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Informix :: Apache Hop"> <meta property="og:description" content="Apache [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/ingres.html b/manual/0/database/databases/ingres.html
new file mode 100644
index 0000000..f9c646f
--- /dev/null
+++ b/manual/0/database/databases/ingres.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Ingres :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/ingres.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Ingres :: Apache Hop"> <meta property="og:description" content="Apache Hop - [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/interbase.html b/manual/0/database/databases/interbase.html
new file mode 100644
index 0000000..e877528
--- /dev/null
+++ b/manual/0/database/databases/interbase.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>interbase :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/interbase.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="interbase :: Apache Hop"> <meta property="og:description" content="Apa [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/kingbasees.html b/manual/0/database/databases/kingbasees.html
new file mode 100644
index 0000000..afccc9f
--- /dev/null
+++ b/manual/0/database/databases/kingbasees.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>kingbase es :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/kingbasees.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="kingbase es :: Apache Hop"> <meta property="og:description" content [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/mariadb.html b/manual/0/database/databases/mariadb.html
new file mode 100644
index 0000000..1b8566a
--- /dev/null
+++ b/manual/0/database/databases/mariadb.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Mariadb :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/mariadb.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Mariadb :: Apache Hop"> <meta property="og:description" content="Apache Ho [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/monetdb.html b/manual/0/database/databases/monetdb.html
new file mode 100644
index 0000000..92a81d6
--- /dev/null
+++ b/manual/0/database/databases/monetdb.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>MonetDB :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/monetdb.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="MonetDB :: Apache Hop"> <meta property="og:description" content="Apache Ho [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/mssql.html b/manual/0/database/databases/mssql.html
new file mode 100644
index 0000000..1dacd76
--- /dev/null
+++ b/manual/0/database/databases/mssql.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>MS SqlServer :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/mssql.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="MS SqlServer :: Apache Hop"> <meta property="og:description" content="A [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/mssqlnative.html b/manual/0/database/databases/mssqlnative.html
new file mode 100644
index 0000000..37fab32
--- /dev/null
+++ b/manual/0/database/databases/mssqlnative.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>MS SqlServer (Native) :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/mssqlnative.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="MS SqlServer (Native) :: Apache Hop"> <meta property="og [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/mysql.html b/manual/0/database/databases/mysql.html
new file mode 100644
index 0000000..8dffda1
--- /dev/null
+++ b/manual/0/database/databases/mysql.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>MySql :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/mysql.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="MySql :: Apache Hop"> <meta property="og:description" content="Apache Hop - Ho [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/netezza.html b/manual/0/database/databases/netezza.html
new file mode 100644
index 0000000..5b851c9
--- /dev/null
+++ b/manual/0/database/databases/netezza.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Netezza :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/netezza.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Netezza :: Apache Hop"> <meta property="og:description" content="Apache Ho [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/oracle.html b/manual/0/database/databases/oracle.html
new file mode 100644
index 0000000..768d334
--- /dev/null
+++ b/manual/0/database/databases/oracle.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Oracle :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/oracle.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Oracle :: Apache Hop"> <meta property="og:description" content="Apache Hop - [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/oraclerdb.html b/manual/0/database/databases/oraclerdb.html
new file mode 100644
index 0000000..27e79f3
--- /dev/null
+++ b/manual/0/database/databases/oraclerdb.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Oracle RDB :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/oraclerdb.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Oracle RDB :: Apache Hop"> <meta property="og:description" content="A [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/postgresql.html b/manual/0/database/databases/postgresql.html
new file mode 100644
index 0000000..b8e369b
--- /dev/null
+++ b/manual/0/database/databases/postgresql.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>PostgreSQL :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/postgresql.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="PostgreSQL :: Apache Hop"> <meta property="og:description" content=" [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/redshift.html b/manual/0/database/databases/redshift.html
new file mode 100644
index 0000000..6ca5857
--- /dev/null
+++ b/manual/0/database/databases/redshift.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Redshift :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/redshift.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Redshift :: Apache Hop"> <meta property="og:description" content="Apache [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/sapdb.html b/manual/0/database/databases/sapdb.html
new file mode 100644
index 0000000..3233a7f
--- /dev/null
+++ b/manual/0/database/databases/sapdb.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>MaxDB (SAP DB) :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/sapdb.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="MaxDB (SAP DB) :: Apache Hop"> <meta property="og:description" conten [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/snowflake.html b/manual/0/database/databases/snowflake.html
new file mode 100644
index 0000000..a5970c9
--- /dev/null
+++ b/manual/0/database/databases/snowflake.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Snowflake :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/snowflake.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Snowflake :: Apache Hop"> <meta property="og:description" content="Apa [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/sqlbase.html b/manual/0/database/databases/sqlbase.html
new file mode 100644
index 0000000..c1a57e0
--- /dev/null
+++ b/manual/0/database/databases/sqlbase.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Gupta SQLBase :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/sqlbase.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Gupta SQLBase :: Apache Hop"> <meta property="og:description" conten [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/sqlite.html b/manual/0/database/databases/sqlite.html
new file mode 100644
index 0000000..03baaba
--- /dev/null
+++ b/manual/0/database/databases/sqlite.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>SqLite :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/sqlite.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="SqLite :: Apache Hop"> <meta property="og:description" content="Apache Hop - [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/sybase.html b/manual/0/database/databases/sybase.html
new file mode 100644
index 0000000..901ee8e
--- /dev/null
+++ b/manual/0/database/databases/sybase.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Sybase :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/sybase.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Sybase :: Apache Hop"> <meta property="og:description" content="Apache Hop - [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/sybaseiq.html b/manual/0/database/databases/sybaseiq.html
new file mode 100644
index 0000000..51e3e98
--- /dev/null
+++ b/manual/0/database/databases/sybaseiq.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Sybase IQ :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/sybaseiq.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Sybase IQ :: Apache Hop"> <meta property="og:description" content="Apac [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/teradata.html b/manual/0/database/databases/teradata.html
new file mode 100644
index 0000000..6fd1ceb
--- /dev/null
+++ b/manual/0/database/databases/teradata.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Teradata :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/teradata.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Teradata :: Apache Hop"> <meta property="og:description" content="Apache [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/universe.html b/manual/0/database/databases/universe.html
new file mode 100644
index 0000000..d9c1632
--- /dev/null
+++ b/manual/0/database/databases/universe.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>IBM Universe :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/universe.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="IBM Universe :: Apache Hop"> <meta property="og:description" content [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/vectorwise.html b/manual/0/database/databases/vectorwise.html
new file mode 100644
index 0000000..17a0f0a
--- /dev/null
+++ b/manual/0/database/databases/vectorwise.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Vectorwise :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/vectorwise.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Vectorwise :: Apache Hop"> <meta property="og:description" content=" [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/database/databases/vertica.html b/manual/0/database/databases/vertica.html
new file mode 100644
index 0000000..7222e2c
--- /dev/null
+++ b/manual/0/database/databases/vertica.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Vertica :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/database/databases/vertica.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Vertica :: Apache Hop"> <meta property="og:description" content="Apache Ho [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/faq/faq.html b/manual/0/faq/faq.html
new file mode 100644
index 0000000..449fb64
--- /dev/null
+++ b/manual/0/faq/faq.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Frequently Asked Questions :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/faq/faq.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Frequently Asked Questions :: Apache Hop"> <meta property="og:description" co [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-concepts.html b/manual/0/getting-started/hop-concepts.html
new file mode 100644
index 0000000..562ad46
--- /dev/null
+++ b/manual/0/getting-started/hop-concepts.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Concepts :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-concepts.html"> <link rel="prev" href="hop-what-is-hop.html"> <link rel="next" href="hop-download-install.html"> <meta name="description" content="Getting Started (2/8): before going into the details of workflows and pipelines, we&#x2 [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-download-install.html b/manual/0/getting-started/hop-download-install.html
new file mode 100644
index 0000000..e51b4db
--- /dev/null
+++ b/manual/0/getting-started/hop-download-install.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Download and Install Hop :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-download-install.html"> <link rel="prev" href="hop-concepts.html"> <link rel="next" href="hop-tools.html"> <meta name="description" content="Getting Started (3/8): Installing Hop is as easy and accessible as possible: down [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-gui-pipelines.html b/manual/0/getting-started/hop-gui-pipelines.html
new file mode 100644
index 0000000..f6a85e4
--- /dev/null
+++ b/manual/0/getting-started/hop-gui-pipelines.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Pipelines :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-gui-pipelines.html"> <link rel="prev" href="hop-gui.html"> <link rel="next" href="hop-gui-workflows.html"> <meta name="description" content="Getting Started (6/8): Pipelines are one of the two main file types in Hop. Learn how to add tra [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-gui-workflows.html b/manual/0/getting-started/hop-gui-workflows.html
new file mode 100644
index 0000000..d40c616
--- /dev/null
+++ b/manual/0/getting-started/hop-gui-workflows.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Workflows :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-gui-workflows.html"> <link rel="prev" href="hop-gui-pipelines.html"> <link rel="next" href="hop-next-steps.html"> <meta name="description" content="Getting Started (7/8): Workflows in Hop are where you&#x27;ll do most of the orchestratio [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-gui.html b/manual/0/getting-started/hop-gui.html
new file mode 100644
index 0000000..780013b
--- /dev/null
+++ b/manual/0/getting-started/hop-gui.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Gui :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-gui.html"> <link rel="prev" href="hop-tools.html"> <link rel="next" href="hop-gui-pipelines.html"> <meta name="description" content="Getting Started (5/8): Hop Gui is Hop&#x27;s visual development environment where you design, run and debu [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-next-steps.html b/manual/0/getting-started/hop-next-steps.html
new file mode 100644
index 0000000..24e89f2
--- /dev/null
+++ b/manual/0/getting-started/hop-next-steps.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Next Steps :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-next-steps.html"> <link rel="prev" href="hop-gui-workflows.html"> <link rel="next" href="../concepts.html"> <meta name="description" content="Getting Started (8/8): You now know the basic Hop terminology and tools, and you&#x27;ve creat [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-tools.html b/manual/0/getting-started/hop-tools.html
new file mode 100644
index 0000000..06e5a49
--- /dev/null
+++ b/manual/0/getting-started/hop-tools.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Tools :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-tools.html"> <link rel="prev" href="hop-download-install.html"> <link rel="next" href="hop-gui.html"> <meta name="description" content="Getting Started (4/8): Hop comes with a number of GUI and command line tools to not only design and r [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/hop-what-is-hop.html b/manual/0/getting-started/hop-what-is-hop.html
new file mode 100644
index 0000000..ca29042
--- /dev/null
+++ b/manual/0/getting-started/hop-what-is-hop.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>What is Apache Hop? :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/hop-what-is-hop.html"> <link rel="prev" href="index.html"> <link rel="next" href="hop-concepts.html"> <meta name="description" content="Getting Started (1/8): before we&#x27;re diving into Hop, we&#x27;ll have a quick look at the v [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/getting-started/index.html b/manual/0/getting-started/index.html
new file mode 100644
index 0000000..6490db5
--- /dev/null
+++ b/manual/0/getting-started/index.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Getting Started :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/getting-started/index.html"> <link rel="prev" href="../index.html"> <link rel="next" href="hop-what-is-hop.html"> <meta name="description" content="The Apache Hop Getting Started guide walks new Hop users through the Hop concepts and the bare necessit [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/file-dialog.html b/manual/0/hop-gui/file-dialog.html
new file mode 100644
index 0000000..73de74c
--- /dev/null
+++ b/manual/0/hop-gui/file-dialog.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop File Dialog :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/file-dialog.html"> <meta name="description" content="Hop Gui&#x27;s file dialog is a powerful tool that not only lets you browse for files and folders, but also shows a lot of metadata about files, allows you to create bookmarks etc."> <meta n [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/hop-gui-git.html b/manual/0/hop-gui/hop-gui-git.html
new file mode 100644
index 0000000..c9bc479
--- /dev/null
+++ b/manual/0/hop-gui/hop-gui-git.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Working with git :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/hop-gui-git.html"> <meta name="description" content="Version control is an important aspect of any serious data orchestration project.. Hop&#x27;s file explorer perspective offers the basic functionality to manage your work in git: pull, push [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/hop-gui-popup-dialog.html b/manual/0/hop-gui/hop-gui-popup-dialog.html
new file mode 100644
index 0000000..677124a
--- /dev/null
+++ b/manual/0/hop-gui/hop-gui-popup-dialog.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Gui Popup (Context) Dialog :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/hop-gui-popup-dialog.html"> <meta name="description" content="The Hop Gui popup dialog is a contextual dialog that allows you to perform a lot of operations on metadata, workflows and pipelines."> <meta name="generator" content= [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/hop-web.html b/manual/0/hop-gui/hop-web.html
new file mode 100644
index 0000000..aa33e54
--- /dev/null
+++ b/manual/0/hop-gui/hop-web.html
@@ -0,0 +1,23 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Web :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/hop-web.html"> <meta name="description" content="Hop Web is a browser based alternative for desktop Hop Gui. Hop Web offers exactly the same functionality as the desktop client, you&#x27;ll hardly notice any difference."> <meta name="generator" conten [...]
+22-Apr-2021 18:13:39.790 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
+22-Apr-2021 18:13:39.797 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [8319] milliseconds
+2021/04/22 18:14:37 - Hop - Projects enabled
+2021/04/22 18:14:37 - Hop - Enabling project : 'default'</code></pre> </div> </div> <div class="paragraph"> <p>Once your container has started, Hop Web is available at <a href="http://localhost:8080/ui" class="bare">http://localhost:8080/ui</a>. You&#8217;ll feel right at home!</p> </div> <div class="paragraph"> <p><span class="image"><img src="../_images/hop-web.png" alt="Hop Web" width="90%"></span></p> </div> </div> </div> </article> </div> </main> </div> <footer> <div class="footer"> [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/index.html b/manual/0/hop-gui/index.html
new file mode 100644
index 0000000..80c2c25
--- /dev/null
+++ b/manual/0/hop-gui/index.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Gui :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/index.html"> <meta name="description" content="Hop Gui is Hop&#x27;s visual development environment where you will mainly design, run and debug workflows and pipelines, but Hop Gui has a lot more to offer: you can configure all of your metadata items  [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/perspective-data-orchestration.html b/manual/0/hop-gui/perspective-data-orchestration.html
new file mode 100644
index 0000000..f135eb1
--- /dev/null
+++ b/manual/0/hop-gui/perspective-data-orchestration.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/perspective-data-orchestration.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/perspective-file-explorer.html b/manual/0/hop-gui/perspective-file-explorer.html
new file mode 100644
index 0000000..b4c3efa
--- /dev/null
+++ b/manual/0/hop-gui/perspective-file-explorer.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/perspective-file-explorer.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content="Apa [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/perspective-metadata.html b/manual/0/hop-gui/perspective-metadata.html
new file mode 100644
index 0000000..1dcada5
--- /dev/null
+++ b/manual/0/hop-gui/perspective-metadata.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/perspective-metadata.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content="Apache H [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/perspective-neo4j.html b/manual/0/hop-gui/perspective-neo4j.html
new file mode 100644
index 0000000..81b676e
--- /dev/null
+++ b/manual/0/hop-gui/perspective-neo4j.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/perspective-neo4j.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content="Apache Hop  [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/perspective-plugin.html b/manual/0/hop-gui/perspective-plugin.html
new file mode 100644
index 0000000..2830b56
--- /dev/null
+++ b/manual/0/hop-gui/perspective-plugin.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/perspective-plugin.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content="Apache Hop [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/perspective-search.html b/manual/0/hop-gui/perspective-search.html
new file mode 100644
index 0000000..1d70a88
--- /dev/null
+++ b/manual/0/hop-gui/perspective-search.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Untitled :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/perspective-search.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Untitled :: Apache Hop"> <meta property="og:description" content="Apache Hop [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/perspectives.html b/manual/0/hop-gui/perspectives.html
new file mode 100644
index 0000000..16b1b75
--- /dev/null
+++ b/manual/0/hop-gui/perspectives.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Gui Perspectives :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/perspectives.html"> <meta name="description" content="Hop Gui provides a number of perspectives for a variety of tasks. You&#x27;ll spend most of your time in the data orchestration perspective, building workflows and pipelines, but other [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-gui/shortcuts.html b/manual/0/hop-gui/shortcuts.html
new file mode 100644
index 0000000..3d3a968
--- /dev/null
+++ b/manual/0/hop-gui/shortcuts.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Shortcuts :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-gui/shortcuts.html"> <meta name="description" content="A lot of actions in Hop can be performed significantly faster through keyboard shortcuts. This page provides an overview of all the available keyboard shortcuts in Hop Gui."> <meta name="generat [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-run/index.html b/manual/0/hop-run/index.html
new file mode 100644
index 0000000..dcab776
--- /dev/null
+++ b/manual/0/hop-run/index.html
@@ -0,0 +1,38 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Run :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-run/index.html"> <meta name="description" content="Hop Run is a command line tool to run your workflows and pipelines. Hop Run can be launched through the script with the corresponding name in your Hop installation directory, either &#x60;hop-run.sh&#x60; [...]
+                    [-j=&lt;projectOption&gt;] [-l=&lt;level&gt;]
+                    [-r=&lt;runConfigurationName&gt;] [-p=&lt;parameters&gt;[,
+                    &lt;parameters&gt;...]]... [-s=&lt;systemProperties&gt;[,
+                    &lt;systemProperties&gt;...]]...
+  -e, --environment=&lt;environmentOption&gt;
+                          The name of the lifecycle environment to use
+  -f, --file=&lt;filename&gt;   The filename of the workflow or pipeline to run
+  -h, --help              Displays this help message and quits.
+  -j, --project=&lt;projectOption&gt;
+                          The name of the project to use
+  -l, --level=&lt;level&gt;     The debug level, one of NONE, MINIMAL, BASIC, DETAILED,
+                            DEBUG, ROWLEVEL
+  -o, --printoptions      Print the used options
+  -p, --parameters=&lt;parameters&gt;[,&lt;parameters&gt;...]
+                          A comma separated list of PARAMETER=VALUE pairs
+  -r, --runconfig=&lt;runConfigurationName&gt;
+                          The name of the Run Configuration to use
+  -s, --system-properties=&lt;systemProperties&gt;[,&lt;systemProperties&gt;...]
+                          A comma separated list of KEY=VALUE pairs</code></pre> </div> </div> <div class="paragraph"> <p>The available options are listed in more detail in the table below:</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all"> <colgroup> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Short</th> <th class="tableblock halign-left valign-top">Extended</th> <th class="tableblock halign-left valign-top">D [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-search/index.html b/manual/0/hop-search/index.html
new file mode 100644
index 0000000..2b650c0
--- /dev/null
+++ b/manual/0/hop-search/index.html
@@ -0,0 +1,19 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Search :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-search/index.html"> <meta name="description" content="Hop Search is a command line tool which allows you to search in your projects. It&#x27;s particularly useful if you&#x27;re working on a remote server over a ssh connection and you need to find a ce [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-server/async-web-service.html b/manual/0/hop-server/async-web-service.html
new file mode 100644
index 0000000..26eaa12
--- /dev/null
+++ b/manual/0/hop-server/async-web-service.html
@@ -0,0 +1,29 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Asynchronous Web Service :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-server/async-web-service.html"> <meta name="generator" content="Antora 3.0.1"> <link rel="stylesheet" href="../../../_/css/site-14ef316f35.css"> <meta property="og:title" content="Asynchronous Web Service :: Apache Hop"> <meta property="o [...]
+  --user cluster:cluster \
+  --request POST \
+  -o async-run.json \
+  -H "Content-Type: application/json" \
+  --data-binary '@document.json' \
+  'http://localhost:8282/hop/asyncRun/?service=dataload&amp;MAX=50000000'</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_query_status"><a class="anchor" href="#_query_status"></a>Query Status</h3> <div class="paragraph"> <p>You can call method <code>hop/asyncStatus</code> with as arguments the service name and ID of the executing workflow: <code>hop/asyncStatus?service=&lt;name&gt;&amp;id=&lt;id&gt;</code>.</p> </div> <div class="paragraph"> <p>The variables that are spec [...]
+curl --user cluster:cluster \
+     --request GET \
+     -o - \
+     'http://localhost:8282/hop/asyncStatus/?service=dataload&amp;id='$ID</code></pre> </div> </div> <div class="paragraph"> <p>The ID of the executing asynchronous web service is the same as the ID of the executing workflow. This means you can query the workflow itself as well with the <code>hop/getWorkflowStatus</code> service. The output of that service can be given in HTML (default), XML (parameter <code>&amp;xml=Y</code>) or JSON (parameter <code>&amp;json=Y</code>). See also: <a hr [...]
+            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+            })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ 
+            ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
+            ga('send', 'pageview');
+        }, true, false); </script> <script src="../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
+  appId: 'IEDZCR8JT4',
+  apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
+  indexName: 'hop-doc',
+  inputSelector: '#search-input',
+  autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
+  algoliaOptions: { hitsPerPage: 10 }
+}).autocomplete
+search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
+function focusSearchInput () { document.querySelector('#search-input').focus() }
+if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script defer data-domain="hop.apache.org" src="https://plausible.io/js/plausible.js"></script> </body> </html> 
\ No newline at end of file
diff --git a/manual/0/hop-server/index.html b/manual/0/hop-server/index.html
new file mode 100644
index 0000000..834f48c
--- /dev/null
+++ b/manual/0/hop-server/index.html
@@ -0,0 +1,192 @@
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Hop Server :: Apache Hop</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/hop-server/index.html"> <meta name="description" content="Hop Server is a lightweight server to run workflows and pipelines with remote run configuration as well as through a number of REST services."> <meta name="generator" content="Antora 3.0.1"> <link r [...]
+                    [-j=&lt;projectOption&gt;] [-l=&lt;level&gt;] [-p=&lt;password&gt;]
+                    [-ps=&lt;pipelineName&gt;] [-u=&lt;username&gt;] [-ws=&lt;workflowName&gt;]
+                    [-s=&lt;systemProperties&gt;[,&lt;systemProperties&gt;...]]...
+                    &lt;parameters&gt;...
+      &lt;parameters&gt;...   One XML configuration file or a hostname and port
+  -e, --environment=&lt;environmentOption&gt;
+                        The name of the lifecycle environment to use
+      -gs, --general-status
+                        List the general status of the server
+      -id=&lt;id&gt;          Specify the ID of the pipeline or workflow to query
+  -j, --project=&lt;projectOption&gt;
+                        The name of the project to use
+  -k, --kill            Stop the running hopServer server.  This is only allowed
+                          when using the hostname/port form of the command. Use the
+                          -s and -u options to authenticate
+  -l, --level=&lt;level&gt;   The debug level, one of NONE, MINIMAL, BASIC, DETAILED,
+                          DEBUG, ROWLEVEL
+  -p, --password=&lt;password&gt;
+                        The server password.  Required for administrative operations
+                          only, not for starting the server.
+      -ps, --pipeline-status=&lt;pipelineName&gt;
+                        List the status of the pipeline with this name (also specify
+                          the -id option)
+  -s, --system-properties=&lt;systemProperties&gt;[,&lt;systemProperties&gt;...]
+                        A comma separated list of KEY=VALUE pairs
+  -u, --userName=&lt;username&gt;
+                        The server user name.  Required for administrative
+                          operations only, not for starting the server.
+      -ws, --workflow-status=&lt;workflowName&gt;
+                        List the status of the workflow with this name (also specify
+                          the -id option)
+
+Example: hop-server.sh 0.0.0.0 8080
+Example: hop-server.sh 192.168.1.221 8081
+
+Example: hop-server.sh -e aura-gcp gs://apachehop/hop-server-config.xml
+Example: hop-server.sh 127.0.0.1 8080 --kill --userName cluster --password cluster</code></pre> </div> </div> <div class="paragraph"> <p>The available Hop Server options are:</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all"> <colgroup> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Short</th> <th class="tableblock halign-left valign-top">Extended</th> <th class="tableblock halign-left valign-top">Description</th> [...]
+
+  &lt;hop-server&gt;
+    &lt;name&gt;server-8181&lt;/name&gt;
+    &lt;hostname&gt;localhost&lt;/hostname&gt;
+    &lt;port&gt;8181&lt;/port&gt;
+  &lt;/hop-server&gt;
+
+  &lt;!-- Join the web server thread and wait until it's finished.
+       The default is true
+  --&gt;
+  &lt;joining&gt;true&lt;/joining&gt;
+
+  &lt;!-- The maximum number of log lines kept in memory by the server.
+       The default is 0 which means: keep all lines
+   --&gt;
+  &lt;max_log_lines&gt;0&lt;/max_log_lines&gt;
+
+  &lt;!-- The time (in minutes) it takes for a log line to be cleaned up in memory.
+       The default is 0 which means: never clean up log lines
+  --&gt;
+  &lt;max_log_timeout_minutes&gt;1440&lt;/max_log_timeout_minutes&gt;
+
+  &lt;!-- The time (in minutes) it takes for a pipeline or workflow execution to be removed from the server status.
+       The default is 0 which means: never clean executions
+  --&gt;
+  &lt;object_timeout_minutes&gt;1440&lt;/object_timeout_minutes&gt;
+
+  &lt;!-- The folder to read metadata objects from so that web services and database connections for sequences can be found.
+       The default is that no metadata is configured: remotely executed pipelines and workflows will have their own metadata.
+  --&gt;
+  &lt;metadata_folder&gt;&lt;/metadata_folder&gt;
+
+&lt;/hop-server-config&gt;</code></pre> </div> </div> <div class="paragraph"> <p>Example startup commands with a configuration file are:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-shell hljs" data-lang="shell">hop-server.sh /foo/bar/hop-server-config.xml</code></pre> </div> </div> <div class="paragraph"> <p>Or with a remote configuration file:</p> </div> <div class="listingblock"> <div class="content"> <pre class=" [...]
+#
+openssl genrsa -des3 -out hop.key
+
+# Make a new certificate
+#
+openssl req -new -x509 -key hop.key -out hop.crt
+
+# Create a PKCS12 keystore and import it into a JKS keystore
+# The resulting file is: keystore
+#
+keytool -keystore keystore -import -alias hop -file hop.crt -trustcacerts
+openssl req -new -key hop.key -out hop.csr
+openssl pkcs12 -inkey hop.key -in hop.crt -export -out hop.pkcs12
+keytool -importkeystore -srckeystore hop.pkcs12 -srcstoretype PKCS12 -destkeystore keystore</code></pre> </div> </div> <div class="paragraph"> <p>Here is an example of the information to include in your server XML:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;hop-server-config&gt;
+&lt;hop-server&gt;
+...
+
+    &lt;sslConfig&gt;
+      &lt;keyStore&gt;/path/to/keystore&lt;/keyStore&gt;
+      &lt;keyStorePassword&gt;password&lt;/keyStorePassword&gt;
+      &lt;keyPassword&gt;keyPassword&lt;/keyPassword&gt;
+    &lt;/sslConfig&gt;
+
+    &lt;!-- Add the following line to support querying over https --&gt;
+    &lt;sslMode&gt;Y&lt;/sslMode&gt;
+  &lt;/hop-server&gt;
+  ...
+&lt;/hop-server-config&gt;</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_start_hop_server_with_docker"><a class="anchor" href="#_start_hop_server_with_docker"></a>Start Hop Server with docker</h3> <div class="paragraph"> <p>It&#8217;s often very convenient to run a Hop docker container since it has all the required software automatically delivered. For a complete description of the standard Hop docker container see the <a href="https://hop.apache.org/tech-manual/latest/d [...]
+  -p 8080:8080 \
+  -e HOP_SERVER_PORT=8080 \
+  -e HOP_SERVER_USER=username \
+  -e HOP_SERVER_USER=password \
+  apache/hop</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_stopping_hop_server"><a class="anchor" href="#_stopping_hop_server"></a>Stopping Hop Server</h3> <div class="paragraph"> <p>In a testing setup where Hop Server was started from a terminal, the process can be terminated through <code>CTRL-C</code>.</p> </div> <div class="paragraph"> <p>In headless environments, the same hop-server command used to start the server can be used to stop it:</p> </div> <div class="list [...]
+2020/06/20 18:35:12 - HopServer - Created listener for webserver @ address : localhost:8081</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_query_a_server_from_the_command_line"><a class="anchor" href="#_query_a_server_from_the_command_line"></a>Query a server from the command line</h2> <div class="sectionbody"> <div class="paragraph"> <p>You can query the new server with another hop-server command:</p> </div> <div class="listingblock"> <div class="content"> <pre cl [...]
+Pipelines: 0 found.
+
+Workflows: 0 found.</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_query_a_pipeline_from_the_command_line"><a class="anchor" href="#_query_a_pipeline_from_the_command_line"></a>Query a pipeline from the command line</h2> <div class="sectionbody"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-log hljs" data-lang="log">sh hop-server.sh -id 375c9113-b538-4559-8e98-ee02a435fbb9 -u cluster -p cluster -ps servic [...]
+2021/10/01 13:27:04 - HopServer - Enabling project 'my-project'
+  ID: 375c9113-b538-4559-8e98-ee02a435fbb9
+      Name:     service-example
+      Status:   Finished
+      Start:    2021/10/01 13:26:45.128
+      End:      2021/10/01 13:26:45.220
+      Log date: 2021/10/01 13:27:04.363
+      Errors:   0
+      Transforms: 4 found.
+        1
+          Name:      a,b
+          Copy:      0
+          Status:    Finished
+          Input:     0
+          Output:    0
+          Read:      1
+          Written:   1
+          Rejected:  0
+          Updated:   0
+          Errors:    0
+        2
+...
+        3
+...
+        4
+...
+      Logging:
+          2021/10/01 13:26:45 - service-example - Executing this pipeline using the Local Pipeline Engine with run configuration 'local'
+          2021/10/01 13:26:45 - service-example - Execution started for pipeline [service-example]
+          2021/10/01 13:26:45 - a,b.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0)
+          2021/10/01 13:26:45 - c,d.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0)
+          2021/10/01 13:26:45 - build JSON.0 - Finished processing (I=0, O=1, R=1, W=1, U=0, E=0)
+          2021/10/01 13:26:45 - OUTPUT.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0)
+          2021/10/01 13:26:45 - service-example - Pipeline duration : 0.092 seconds [  0.092" ]
+          2021/10/01 13:26:45 - service-example - Execution finished on a local pipeline engine with run configuration 'local'</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_query_a_workflow_from_the_command_line"><a class="anchor" href="#_query_a_workflow_from_the_command_line"></a>Query a workflow from the command line</h2> <div class="sectionbody"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-log hljs" [...]
+  ID: e24b4549-edf0-4d77-987e-f103b630b4cc
+      Name:     test-workflow
+      Status:   Finished
+      Log date: 2021/10/01 14:27:45.891
+      Result:   true
+      Errors:   0
+      Logging:
+          2021/10/01 14:27:45 - test-workflow - Start of workflow execution
+          2021/10/01 14:27:46 - test-workflow - Starting action [sample]
+          2021/10/01 14:27:46 - sample - Using run configuration [remote-8181]
+          2021/10/01 14:27:46 - sample - Executing this pipeline using the Remote Pipeline Engine with run configuration 'remote-8181'
+          2021/10/01 14:27:46 - sample - 2021/10/01 14:27:46 - sample - Executing this pipeline using the Local Pipeline Engine with run configuration 'local'
+          2021/10/01 14:27:46 - sample - 2021/10/01 14:27:46 - sample - Execution started for pipeline [sample]
+          2021/10/01 14:27:47 - sample - 2021/10/01 14:27:47 - 1M.0 - Finished processing (I=0, O=0, R=0, W=1000000, U=0, E=0)
+          2021/10/01 14:27:47 - sample - 2021/10/01 14:27:47 - someString,someInt.0 - Finished processing (I=0, O=0, R=1000000, W=1000000, U=0, E=0)
+          2021/10/01 14:27:47 - sample - 2021/10/01 14:27:47 - id.0 - Finished processing (I=0, O=0, R=1000000, W=1000000, U=0, E=0)
+          2021/10/01 14:27:47 - sample - 2021/10/01 14:27:47 - sample - Pipeline duration : 0.977 seconds [  0.977" ]
+          2021/10/01 14:27:47 - sample - 2021/10/01 14:27:47 - sample - Execution finished on a local pipeline engine with run configuration 'local'
+          2021/10/01 14:27:47 - sample - Execution finished on a remote pipeline engine with run configuration 'remote-8181'
+          2021/10/01 14:27:48 - test-workflow - Starting action [true]
+          2021/10/01 14:27:48 - test-workflow - Starting action [false]
+          2021/10/01 14:27:48 - test-workflow - Starting action [log-something]
+          2021/10/01 14:27:48 - Subject - Message
+          2021/10/01 14:27:48 - test-workflow - Starting action [Success]
+          2021/10/01 14:27:48 - test-workflow - Finished action [Success] (result=[true])
+          2021/10/01 14:27:48 - test-workflow - Finished action [log-something] (result=[true])
+          2021/10/01 14:27:48 - test-workflow - Finished action [false] (result=[true])
+          2021/10/01 14:27:48 - test-workflow - Finished action [true] (result=[true])
... 41950 lines suppressed ...