Skip to content
Open
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
270 changes: 266 additions & 4 deletions _docs/how_to_run_tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ If you want a specific version of Puppet, you must set an environment variable s
export PUPPET_VERSION="~> 8.8.1"
```

## Running the tests in a local ruby environment
## Running the tests in a local Ruby environment

### Installing Dependencies

Dependencies for running tests are installed as gems via bundler and will run in ruby 3.2 and newer (as of time of writing).
Dependencies for running tests are installed as gems via bundler and will run in Ruby 3.2 and newer (as of time of writing).
It should be trivial to install via your package manager or gem.

#### Debian/Ubuntu
Expand Down Expand Up @@ -92,9 +92,271 @@ to learn more about the Vox Pupuli test helpers:
* [voxpupuli-acceptance](https://github.com/voxpupuli/voxpupuli-acceptance) for acceptance testing
* [voxpupuli-release](https://github.com/voxpupuli/voxpupuli-release) for creating a release

To get a rough understanding, we created a dependency graph for each of our meta gem.
Keep in mind:

* We exclude [std- and default gems](https://stdgems.org/)
* This graph is created by hand and not updated automatically
* All gems maintained by Vox Pupuli or the OpenVoxProject are red
* All gems maintained by Perforce are green
* The idea is to provide a rough overview of the ecosystem and ownership
* The listed versions are the latest supported ones
* We don't resolve dependencies for some transient deps, otherwise the graph would explode

#### voxpupuli-test 13.1.0

<div class="mermaid">
graph TD
subgraph Legend
puppetlabs["Gems owned by Perforce"]
voxpupuli["Gems owned by Vox Pupuli"]
end
voxpupuli-test["voxpupuli-test (13.1.0)"] --> facterdb["facterdb (4.1.0)"]
facterdb["facterdb (4.1.0)"] --> jgrep["jgrep (1.5.4)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> metadata-json-lint["metadata-json-lint (5.0.0)"]
metadata-json-lint["metadata-json-lint (5.0.0)"] --> json-schema["json-schema (6.0.0)"]
metadata-json-lint["metadata-json-lint (5.0.0)"] --> semantic_puppet["semantic_puppet (1.1.1)"]
metadata-json-lint["metadata-json-lint (5.0.0)"] --> spdx-licenses["spdx-licenses (1.3.0)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> openvox-strings["openvox-strings (6.0.0)"]
openvox-strings["openvox-strings (6.0.0)"] --> openvox["openvox (8.23.1)"]
openvox["openvox (8.23.1)"] --> multi_json["multi_json (1.17.0)"]
openvox["openvox (8.23.1)"] --> openfact["openfact (5.1.0)"]
openfact["openfact (5.1.0)"] --> hocon["hocon (1.4.0)"]
openvox["openvox (8.23.1)"] --> puppet-resource_api["puppet-resource_api (1.9.0)"]
puppet-resource_api["puppet-resource_api (1.9.0)"] --> hocon["hocon (1.4.0)"]
openvox["openvox (8.23.1)"] --> semantic_puppet["semantic_puppet (1.1.1)"]
openvox-strings["openvox-strings (6.0.0)"] --> rgen["rgen (0.10.2)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> puppet_fixtures["puppet_fixtures (2.0.1)"]
puppet_fixtures["puppet_fixtures (2.0.1)"] --> rake["rake (13.3.0)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> puppet-syntax["puppet-syntax (7.0.1)"]
puppet-syntax["puppet-syntax (7.0.1)"] --> openvox["openvox (8.23.1)"]
puppet-syntax["puppet-syntax (7.0.1)"] --> rake["rake (13.3.0)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> rake["rake (13.3.0)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> rspec-puppet["rspec-puppet (5.0.0)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> rspec-puppet-facts["rspec-puppet-facts (6.0.0)"]
rspec-puppet-facts["rspec-puppet-facts (6.0.0)"] --> facterdb["facterdb (4.1.0)"]
rspec-puppet-facts["rspec-puppet-facts (6.0.0)"] --> openfact["openfact (5.1.0)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> rubocop["rubocop (1.50.2)"]
voxpupuli-test["voxpupuli-test (13.1.0)"] --> voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"]

classDef voxpupuli fill:#ffcccc,stroke:#aa0000,color:#000;
classDef puppetlabs fill:#ccffcc,stroke:#009900,color:#000;
class puppetlabs puppetlabs;
class voxpupuli voxpupuli;
class voxpupuli-test voxpupuli;
class facterdb voxpupuli;
class metadata-json-lint voxpupuli;
class semantic_puppet puppetlabs;
class openvox-strings voxpupuli;
class openvox voxpupuli;
class openfact voxpupuli;
class hocon puppetlabs;
class puppet-resource_api puppetlabs;
class puppet_fixtures voxpupuli;
class puppet-syntax voxpupuli;
class rspec-puppet-facts voxpupuli;
class voxpupuli-puppet-lint-plugins voxpupuli;
class rspec-puppet puppetlabs;
</div>

#### voxpupuli-puppet-lint-plugins 7.0.0

This is a dependency from voxpupuli-test.
We render it in an individual graph to make it more readable.

<div class="mermaid">
graph LR
subgraph Legend
puppetlabs["Gems owned by Perforce"]
voxpupuli["Gems owned by Vox Pupuli"]
end
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-absolute_classname-check["puppet-lint-absolute_classname-check (5.0.0)"]
puppet-lint-absolute_classname-check["puppet-lint-absolute_classname-check (5.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-anchor-check["puppet-lint-anchor-check (3.0.0)"]
puppet-lint-anchor-check["puppet-lint-anchor-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-exec_idempotency-check["puppet-lint-exec_idempotency-check (2.0.0)"]
puppet-lint-exec_idempotency-check["puppet-lint-exec_idempotency-check (2.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-file_ensure-check["puppet-lint-file_ensure-check (3.0.0)"]
puppet-lint-file_ensure-check["puppet-lint-file_ensure-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-leading_zero-check["puppet-lint-leading_zero-check (3.0.0)"]
puppet-lint-leading_zero-check["puppet-lint-leading_zero-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-lookup_in_parameter-check["puppet-lint-lookup_in_parameter-check (3.0.0)"]
puppet-lint-lookup_in_parameter-check["puppet-lint-lookup_in_parameter-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-manifest_whitespace-check["puppet-lint-manifest_whitespace-check (2.0.0)"]
puppet-lint-manifest_whitespace-check["puppet-lint-manifest_whitespace-check (2.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-optional_default-check["puppet-lint-optional_default-check (3.0.0)"]
puppet-lint-optional_default-check["puppet-lint-optional_default-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-package_ensure-check["puppet-lint-package_ensure-check (0.2.0)"]
puppet-lint-package_ensure-check["puppet-lint-package_ensure-check (0.2.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-param-docs["puppet-lint-param-docs (3.0.0)"]
puppet-lint-param-docs["puppet-lint-param-docs (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-params_empty_string-check["puppet-lint-params_empty_string-check (3.0.0)"]
puppet-lint-params_empty_string-check["puppet-lint-params_empty_string-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-params_not_optional_with_undef-check["puppet-lint-params_not_optional_with_undef-check (1.0.0)"]
puppet-lint-params_not_optional_with_undef-check["puppet-lint-params_not_optional_with_undef-check (1.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-param-types["puppet-lint-param-types (3.0.0)"]
puppet-lint-param-types["puppet-lint-param-types (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-resource_reference_syntax["puppet-lint-resource_reference_syntax (3.0.0)"]
puppet-lint-resource_reference_syntax["puppet-lint-resource_reference_syntax (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-strict_indent-check["puppet-lint-strict_indent-check (5.0.0)"]
puppet-lint-strict_indent-check["puppet-lint-strict_indent-check (5.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-topscope-variable-check["puppet-lint-topscope-variable-check (3.0.0)"]
puppet-lint-topscope-variable-check["puppet-lint-topscope-variable-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-trailing_comma-check["puppet-lint-trailing_comma-check (3.0.0)"]
puppet-lint-trailing_comma-check["puppet-lint-trailing_comma-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-unquoted_string-check["puppet-lint-unquoted_string-check (4.1.0)"]
puppet-lint-unquoted_string-check["puppet-lint-unquoted_string-check (4.1.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-variable_contains_upcase["puppet-lint-variable_contains_upcase (3.0.0)"]
puppet-lint-variable_contains_upcase["puppet-lint-variable_contains_upcase (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]
voxpupuli-puppet-lint-plugins["voxpupuli-puppet-lint-plugins (7.0.0)"] --> puppet-lint-version_comparison-check["puppet-lint-version_comparison-check (3.0.0)"]
puppet-lint-version_comparison-check["puppet-lint-version_comparison-check (3.0.0)"] --> puppet-lint["puppet-lint (5.1.0)"]

classDef voxpupuli fill:#ffcccc,stroke:#aa0000,color:#000;
classDef puppetlabs fill:#ccffcc,stroke:#009900,color:#000;
class puppetlabs puppetlabs;
class voxpupuli voxpupuli;
class voxpupuli-puppet-lint-plugins voxpupuli;
class puppet-lint puppetlabs;
class puppet-lint-absolute_classname-check voxpupuli;
class puppet-lint-anchor-check voxpupuli;
class puppet-lint-exec_idempotency-check voxpupuli;
class puppet-lint-file_ensure-check voxpupuli;
class puppet-lint-leading_zero-check voxpupuli;
class puppet-lint-lookup_in_parameter-check voxpupuli;
class puppet-lint-manifest_whitespace-check voxpupuli;
class puppet-lint-optional_default-check voxpupuli;
class puppet-lint-param-docs voxpupuli;
class puppet-lint-params_empty_string-check voxpupuli;
class puppet-lint-params_not_optional_with_undef-check voxpupuli;
class puppet-lint-param-types voxpupuli;
class puppet-lint-resource_reference_syntax voxpupuli;
class puppet-lint-strict_indent-check voxpupuli;
class puppet-lint-topscope-variable-check voxpupuli;
class puppet-lint-trailing_comma-check voxpupuli;
class puppet-lint-unquoted_string-check voxpupuli;
class puppet-lint-variable_contains_upcase voxpupuli;
class puppet-lint-version_comparison-check voxpupuli;
</div>

#### voxpupuli-release 5.0.1

<div class="mermaid">
graph TD
subgraph Legend
puppetlabs["Gems owned by Perforce"]
voxpupuli["Gems owned by Vox Pupuli"]
end
voxpupuli-release["voxpupuli-release (5.0.1)"] --> faraday-retry["faraday-retry (2.3.2)"]
faraday-retry["faraday-retry (2.3.2)"] --> faraday["faraday (2.14.0)"]
faraday["faraday (2.14.0)"] --> faraday-net_http["faraday-net_http (3.4.1)"]
voxpupuli-release["voxpupuli-release (5.0.1)"] --> github_changelog_generator["github_changelog_generator (1.16.4)"]
voxpupuli-release["voxpupuli-release (5.0.1)"] --> openvox-strings["openvox-strings (6.0.0)"]
openvox-strings["openvox-strings (6.0.0)"] --> openvox["openvox (8.23.1)"]
openvox["openvox (8.23.1)"] --> multi_json["multi_json (1.17.0)"]
openvox["openvox (8.23.1)"] --> openfact["openfact (5.1.0)"]
openfact["openfact (5.1.0)"] --> hocon["hocon (1.4.0)"]
openvox["openvox (8.23.1)"] --> puppet-resource_api["puppet-resource_api (1.9.0)"]
puppet-resource_api["puppet-resource_api (1.9.0)"] --> hocon["hocon (1.4.0)"]
openvox["openvox (8.23.1)"] --> semantic_puppet["semantic_puppet (1.1.1)"]
openvox-strings["openvox-strings (6.0.0)"] --> rgen["rgen (0.10.2)"]
voxpupuli-release["voxpupuli-release (5.0.1)"] --> puppet-blacksmith["puppet-blacksmith (9.0.0)"]
puppet-blacksmith["puppet-blacksmith (9.0.0)"] --> puppet-modulebuilder["puppet-modulebuilder (2.1.0)"]
puppet-modulebuilder["puppet-modulebuilder (2.1.0)"] --> minitar["minitar (1.1.0)"]
puppet-modulebuilder["puppet-modulebuilder (2.1.0)"] --> pathspec["pathspec (2.1.0)"]
puppet-blacksmith["puppet-blacksmith (9.0.0)"] --> rest-client["rest-client (2.1.0)"]
voxpupuli-release["voxpupuli-release (5.0.1)"] --> rake["rake (13.3.0)"]

classDef voxpupuli fill:#ffcccc,stroke:#aa0000,color:#000;
classDef puppetlabs fill:#ccffcc,stroke:#009900,color:#000;
class puppetlabs puppetlabs;
class voxpupuli voxpupuli;
class voxpupuli-release voxpupuli;
class openvox-strings voxpupuli;
class openvox voxpupuli;
class openfact voxpupuli;
class hocon puppetlabs;
class puppet-resource_api puppetlabs;
class semantic_puppet puppetlabs;
class puppet-blacksmith voxpupuli;
class puppet-modulebuilder puppetlabs;
</div>

#### voxpupuli-acceptance 4.1.0

<div class="mermaid">
graph TD
subgraph Legend
puppetlabs["Gems owned by Perforce"]
voxpupuli["Gems owned by Vox Pupuli"]
end
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> bcrypt_pbkdf["bcrypt_pbkdf (1.1.2.rc1)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> beaker["beaker (7.2.1)"]
beaker["beaker (7.2.1)"] --> bcrypt_pbkdf["bcrypt_pbkdf (1.1.2.rc1)"]
beaker["beaker (7.2.1)"] --> beaker-hostgenerator["beaker-hostgenerator (3.3.0)"]
beaker["beaker (7.2.1)"] --> ed25519["ed25519 (1.4.0)"]
beaker["beaker (7.2.1)"] --> hocon["hocon (1.4.0)"]
beaker["beaker (7.2.1)"] --> in-parallel["in-parallel (1.0.1)"]
beaker["beaker (7.2.1)"] --> minitar["minitar (1.1.0)"]
beaker["beaker (7.2.1)"] --> minitest["minitest (5.26.0)"]
beaker["beaker (7.2.1)"] --> net-scp["net-scp (4.1.0)"]
net-scp["net-scp (4.1.0)"] --> net-ssh["net-ssh (7.3.0)"]
beaker["beaker (7.2.1)"] --> net-ssh["net-ssh (7.3.0)"]
beaker["beaker (7.2.1)"] --> rexml["rexml (3.4.4)"]
beaker["beaker (7.2.1)"] --> rsync["rsync (1.0.9)"]
beaker["beaker (7.2.1)"] --> stringify-hash["stringify-hash (0.0.2)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> beaker-docker["beaker-docker (3.0.1)"]
beaker-docker["beaker-docker (3.0.1)"] --> beaker["beaker (7.2.1)"]
beaker-docker["beaker-docker (3.0.1)"] --> docker-api["docker-api (2.4.0)"]
beaker-docker["beaker-docker (3.0.1)"] --> stringify-hash["stringify-hash (0.0.2)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> beaker-hiera["beaker-hiera (2.0.0)"]
beaker-hiera["beaker-hiera (2.0.0)"] --> beaker["beaker (7.2.1)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> beaker-hostgenerator["beaker-hostgenerator (3.3.0)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> beaker_puppet_helpers["beaker_puppet_helpers (3.1.1)"]
beaker_puppet_helpers["beaker_puppet_helpers (3.1.1)"] --> beaker["beaker (7.2.1)"]
beaker_puppet_helpers["beaker_puppet_helpers (3.1.1)"] --> puppet-modulebuilder["puppet-modulebuilder (2.1.0)"]
puppet-modulebuilder["puppet-modulebuilder (2.1.0)"] --> minitar["minitar (1.1.0)"]
puppet-modulebuilder["puppet-modulebuilder (2.1.0)"] --> pathspec["pathspec (2.1.0)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> beaker-rspec["beaker-rspec (9.0.0)"]
beaker-rspec["beaker-rspec (9.0.0)"] --> beaker["beaker (7.2.1)"]
beaker-rspec["beaker-rspec (9.0.0)"] --> rspec["rspec (3.13.2)"]
beaker-rspec["beaker-rspec (9.0.0)"] --> serverspec["serverspec (2.43.0)"]
beaker-rspec["beaker-rspec (9.0.0)"] --> specinfra["specinfra (2.94.1)"]
specinfra["specinfra (2.94.1)"] --> net-scp["net-scp (4.1.0)"]
specinfra["specinfra (2.94.1)"] --> net-ssh["net-ssh (7.3.0)"]
specinfra["specinfra (2.94.1)"] --> net-telnet["net-telnet (0.2.0)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> beaker-vagrant["beaker-vagrant (2.0.0)"]
beaker-vagrant["beaker-vagrant (2.0.0)"] --> beaker["beaker (7.2.1)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> puppet_fixtures["puppet_fixtures (2.0.1)"]
puppet_fixtures["puppet_fixtures (2.0.1)"] --> rake["rake (13.3.0)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> puppet-modulebuilder["puppet-modulebuilder (2.1.0)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> rake["rake (13.3.0)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> serverspec["serverspec (2.43.0)"]
voxpupuli-acceptance["voxpupuli-acceptance (4.1.0)"] --> winrm["winrm (2.3.9)"]

classDef voxpupuli fill:#ffcccc,stroke:#aa0000,color:#000;
classDef puppetlabs fill:#ccffcc,stroke:#009900,color:#000;
class puppetlabs puppetlabs;
class voxpupuli voxpupuli;
class voxpupuli-acceptance voxpupuli;
class beaker voxpupuli;
class beaker-hostgenerator voxpupuli;
class hocon puppetlabs;
class in-parallel puppetlabs;
class stringify-hash puppetlabs;
class beaker-docker voxpupuli;
class beaker-hiera voxpupuli;
class beaker_puppet_helpers voxpupuli;
class puppet-modulebuilder puppetlabs;
class beaker-rspec voxpupuli;
class beaker-vagrant voxpupuli;
class puppet_fixtures voxpupuli;
</div>

### Linting

Vox Pupuli uses [puppet-lint](https://github.com/puppetlabs/puppet-lint) for better code quality. To run it:
Vox Pupuli uses [puppet-lint](https://github.com/puppetlabs/puppet-lint) for better code quality.
To run it:

```shell
bundle exec rake lint
Expand Down Expand Up @@ -166,7 +428,7 @@ To limit test execution to a certain os or os release you can set the environmen

```shell
export SPEC_FACTS_OS=centos
export SPEC_FACTS_OS=centos-7
export SPEC_FACTS_OS=centos-10
```

### Running Acceptance Tests
Expand Down
2 changes: 1 addition & 1 deletion _layouts/architecture.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ <h1>{{ page.title }}

{{ content }}

<script src="//cdn.jsdelivr.net/npm/mermaid@11.6.0/dist/mermaid.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/mermaid@11.12.0/dist/mermaid.min.js"></script>
<script>mermaid.initialize({startOnLoad:true});</script>

</article>
2 changes: 2 additions & 0 deletions _layouts/post.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ <h1>{{ page.title }}
<article>
{{ content }}
</article>
<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/mermaid.min.js"></script>
<script>mermaid.initialize({startOnLoad:true});</script>