Skip to content

Conversation

@volker-raschek
Copy link
Contributor

@volker-raschek volker-raschek commented Nov 9, 2025

The following patch introduces markdownlint and markdown-link-check and prepares
bitnami's markdown parameter generator.

markdownlinter

Markdownlinter is an open source application developed in NodeJS.

It is available directly as a NodeJS application, or alternatively it can also be run as a GitHub Action. The GitHub Action can be obtained from the GitHub Marketplace.

In this specific patch, however, the application is installed natively via package.json. This has the advantage that developers are able to run the NodeJS application locally.

Instead of having to remember npm install and npm run, as well as installing NodeJS locally, the patch adds a Makefile. The Makefile contains all the relevant npm commands as a dedicated target. Furthermore, the Makefile contains a wrapper to execute the commands in a container with NodeJS. This requires at least docker or podman to be installed. The default is podman.

make readme/lint
make container-run/readme/lint
make container-run/readme/lint CONTAINER_RUNTIME=docker

The markdownlint application has a configuration file named .markdownlint.yaml and .markdownignore. I have adjusted the markdownlint configuration to the best of my knowledge in order to make as few changes as possible to the existing Markdown files. Probably the biggest change is the line break after 120 characters, which is introduced by the patch.

markdown-link-check

As a second NodeJS application, the package.json contains the application markdown-link-check. This application checks all links in all Markdown files to see if they are accessible.

This is to prevent links in documentation from becoming inaccessible.

The source code of the application is hosted on GitHub and is available under the ISC license.

The Makefile contains also dedicated targets to install and execute the NodeJS application:

make readme/link
make container-run/readme/link
make container-run/readme/link CONTAINER_RUNTIME=docker

readme-generator-for-helm

As the last NodeJS application, the patch prepares for the introduction of the readme-generator-for-helm application. This enables detailed documentation of attributes in values.yaml in the README.

It is intended to actively help users understand the attributes in values.yaml. It does not introduce a values.schema.json file.

The source code is also hosted on GitHub and is subject to
the Apache 2.0 license.

The Makefile contains also dedicated targets to install and execute the NodeJS application:

make readme/parameters
make container-run/readme/parameters
make container-run/readme/parameters CONTAINER_RUNTIME=docker

Optional:

The patch includes a new CI workflow named Markdown linter. This workflow can be added as Require status checks to pass before merging in the repository settings.

Outlook for the next patches

  • Adjust the values.yaml so that the parameters are added to the README.md.

  • Introduction to editorconfig

  • Adaptation of the directory structure to Helm specifications.

    Volker

The following patch introduces markdownlint and markdown-link-check and prepares
bitnami's markdown parameter generator.

[Markdownlinter](https://github.com/DavidAnson/markdownlint) is an open source
application developed in NodeJS.

It is available directly as a NodeJS application, or alternatively it can also
be run as a GitHub Action. The GitHub Action can be obtained from the GitHub
[Marketplace](https://github.com/marketplace/actions/markdownlint-cli2-action).

In this specific patch, however, the application is installed natively via
`package.json`. This has the advantage that developers are able to run the
NodeJS application locally.

Instead of having to remember `npm install` and `npm run`, as well as installing
NodeJS locally, the patch adds a `Makefile`. The `Makefile` contains all the
relevant npm commands as a dedicated target. Furthermore, the `Makefile`
contains a wrapper to execute the commands in a container with NodeJS. This
requires at least `docker` or `podman` to be installed. The default is `podman`.

```bash
make readme/lint

make container-run/readme/lint

make container-run/readme/lint CONTAINER_RUNTIME=docker
```

The markdownlint application has a configuration file named `.markdownlint.yaml` and
`.markdownignore`. I have adjusted the markdownlint configuration to the best of
my knowledge in order to make as few changes as possible to the existing
Markdown files. Probably the biggest change is the line break after 120
characters, which is introduced by the patch.

As a second NodeJS application, the `package.json` contains the application
`markdown-link-check`. This application checks all links in all Markdown files
to see if they are accessible.

This is to prevent links in documentation from becoming inaccessible.

The source code of the application is hosted on
[GitHub](https://github.com/tcort/markdown-link-check) and is available under
the ISC license.

The `Makefile` contains also dedicated targets to install and execute the NodeJS
application:

```bash
make readme/link

make container-run/readme/link

make container-run/readme/link CONTAINER_RUNTIME=docker
```

As the last NodeJS application, the patch prepares for the introduction of the
readme-generator-for-helm application. This enables detailed documentation of
attributes in `values.yaml` in the README.

It is intended to actively help users understand the attributes in
`values.yaml`. It does not introduce a `values.schema.json` file.

The source code is also hosted on
[GitHub](https://github.com/bitnami/readme-generator-for-helm) and is subject to
the Apache 2.0 license.

- Adjust the `values.yaml` so that the parameters are added to the `README.md`.
- Introduction to [editorconfig](https://editorconfig.org/)
- Adaptation of the directory structure to Helm [specifications](https://helm.sh/docs/topics/charts/).

Signed-off-by: Markus Pesch <markus.pesch@cryptic.systems>
@volker-raschek
Copy link
Contributor Author

Hi @wrenix and the other maintainers,
I would like to appreciate your feedback :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant