MkDocs plugin that generates a product catalog page from YAML files
Project description
mkdocs-product-catalog
An MkDocs plugin that renders a product catalog on any page from a directory of YAML files. Each product appears as a clickable button with an icon (or acronym fallback). Clicking a button opens a lightbox modal with all product details.
Installation
pip install mkdocs-product-catalog
Usage
Add the plugin to mkdocs.yml:
plugins:
- search
- product-catalog
Then place this tag anywhere in a markdown file to embed a catalog:
<!-- product-catalog: dirname -->
dirname is the path to a directory of YAML files, relative to your docs/ folder. The tag can appear on any page, any number of times, each pointing to a different directory:
# Platform Tools
<!-- product-catalog: catalog/platform -->
# Data Tools
<!-- product-catalog: catalog/data -->
Product YAML format
Each .yaml or .yml file in the directory represents one product:
title: My Product # required
description: A short description of the product. # optional
icon: images/my_icon.png # optional
url: https://myproduct.example.com # optional
documentation: https://docs.example.com/myproduct # optional
repository: https://github.com/example/myproduct # optional
owners: # optional
- Alice
- Bob
metadata: # optional — arbitrary key/value pairs
team: platform
sla: 99.9%
dashboard: https://grafana.example.com/d/overview
Products are rendered in alphabetical order by filename.
Icon
The icon value is used as the src of an <img> tag — use a path relative to the page the tag appears on, or an absolute URL. If omitted, an acronym (up to 3 initials) is shown in a colored circle instead.
Metadata
Any metadata value that contains a URL (http://, https://) is automatically rendered as a clickable link.
Search
Product titles, descriptions, and owner names are included in a hidden element on the page so MkDocs search can index them. Searching for a product title will surface the page it appears on.
How it works
- The plugin scans all
.yamland.ymlfiles in the specified directory. - It renders a responsive button grid; each button shows the product icon or acronym and title.
- Clicking a button opens a modal with the product's description, URL, documentation, repository, owners, and metadata.
- The modal closes with the × button, by clicking the backdrop, or pressing Escape.
- Styles use MkDocs CSS custom properties and adapt to light and dark themes.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkdocs_product_catalog-1.0.3.tar.gz.
File metadata
- Download URL: mkdocs_product_catalog-1.0.3.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
693a7d23bdeae1dd9e8b6dcb5d84cbc62fb3f3ce1f623977d42fdc9aed5edbd0
|
|
| MD5 |
7ee2e72fd0dc784391f9dcd4d20e16c8
|
|
| BLAKE2b-256 |
b7ec4207c70d0bbf567e8e86aea834882a19ad2f5e327c8be41d1fb33d761f67
|
Provenance
The following attestation bundles were made for mkdocs_product_catalog-1.0.3.tar.gz:
Publisher:
pypi.yml on luukkemp/mkdocs_product_catalog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_product_catalog-1.0.3.tar.gz -
Subject digest:
693a7d23bdeae1dd9e8b6dcb5d84cbc62fb3f3ce1f623977d42fdc9aed5edbd0 - Sigstore transparency entry: 1217157659
- Sigstore integration time:
-
Permalink:
luukkemp/mkdocs_product_catalog@9c01b872bb3a44d8c6353f728a77a16e1c3cab61 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/luukkemp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@9c01b872bb3a44d8c6353f728a77a16e1c3cab61 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mkdocs_product_catalog-1.0.3-py3-none-any.whl.
File metadata
- Download URL: mkdocs_product_catalog-1.0.3-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9cefc28987b5df9e8bd71755986aba1a51e7efb4d734101aac0ff3d5b749e6b
|
|
| MD5 |
4eacf9e07f430c01c35d9fe1bb40006b
|
|
| BLAKE2b-256 |
3416478ce2137f2734a6661f0453f4e59341ab9d9e7d9d87d1fe0b69f3842f13
|
Provenance
The following attestation bundles were made for mkdocs_product_catalog-1.0.3-py3-none-any.whl:
Publisher:
pypi.yml on luukkemp/mkdocs_product_catalog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_product_catalog-1.0.3-py3-none-any.whl -
Subject digest:
d9cefc28987b5df9e8bd71755986aba1a51e7efb4d734101aac0ff3d5b749e6b - Sigstore transparency entry: 1217157720
- Sigstore integration time:
-
Permalink:
luukkemp/mkdocs_product_catalog@9c01b872bb3a44d8c6353f728a77a16e1c3cab61 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/luukkemp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@9c01b872bb3a44d8c6353f728a77a16e1c3cab61 -
Trigger Event:
release
-
Statement type: