Skip to content

Markdown Panel Configuration

The markdown panel type is used to display rich text content, formatted using Markdown syntax, directly on your dashboard. This is equivalent to the "Text" visualization in Kibana.

A Poem for the Documentation Devotees

For those who believe every dashboard needs context:

# Bold headers and *italic* flair,
- Bullet lists with items to share,
[Links](that take you anywhere),
Markdown panels handle with care!

When charts alone won't tell the tale,
And metrics need context to prevail,
You write instructions, notes, and more,
To help users understand the score.

"## Welcome to this Dashboard space!"
"Please follow these steps with grace!"
Font size twelve or twenty-four,
Open a new tab, or replace this bore.

From setup guides to troubleshooting tips,
Important warnings, helpful quips,
Your markdown keeps the team aligned,
Thanks to documentation found in-line!

Markdown Panel

Represents a Markdown panel configuration.

Markdown panels are used to display rich text content using Markdown syntax.

Examples:

Minimal Markdown panel:

dashboards:
  - name: "Dashboard with Markdown"
    panels:
      - title: "Welcome Note"
        size: { w: 48, h: 3 }
        markdown:
          content: |
            ## Welcome to the Dashboard!
            This panel provides an overview of the key metrics and reports available.

            - Item 1
            - Item 2

Markdown panel with custom font size:

dashboards:
  - name: "Informational Dashboard"
    panels:
      - title: "Important Instructions"
        size: { w: 32, h: 5 }
        markdown:
          content: |
            # Setup Guide

            Please follow the [official documentation](https://strawgate.github.io/kb-yaml-to-lens/) for setup instructions.

            Key steps:
            1. **Download** the installer.
            2. **Configure** the `config.yaml` file.
            3. **Run** the start script.
          font_size: 14

Attributes:

Name Type Description
markdown MarkdownPanelConfig

Markdown panel configuration.

Show JSON schema:
{
  "$defs": {
    "DashboardDrilldown": {
      "additionalProperties": false,
      "description": "Dashboard-to-dashboard drilldown configuration.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
          "title": "Id"
        },
        "name": {
          "description": "Display name for the drilldown.",
          "title": "Name",
          "type": "string"
        },
        "triggers": {
          "description": "List of triggers that activate this drilldown. Defaults to ['click'].",
          "items": {
            "$ref": "#/$defs/DrilldownTrigger"
          },
          "title": "Triggers",
          "type": "array"
        },
        "dashboard": {
          "description": "Target dashboard ID or friendly identifier.",
          "title": "Dashboard",
          "type": "string"
        },
        "with_filters": {
          "default": true,
          "description": "Whether to carry over current filters to the target dashboard. Defaults to True.",
          "title": "With Filters",
          "type": "boolean"
        },
        "with_time": {
          "default": true,
          "description": "Whether to carry over current time range to the target dashboard. Defaults to True.",
          "title": "With Time",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "dashboard"
      ],
      "title": "DashboardDrilldown",
      "type": "object"
    },
    "DrilldownTrigger": {
      "description": "User-facing drilldown trigger types.",
      "enum": [
        "click",
        "filter",
        "range"
      ],
      "title": "DrilldownTrigger",
      "type": "string"
    },
    "DrilldownTypes": {
      "anyOf": [
        {
          "$ref": "#/$defs/DashboardDrilldown"
        },
        {
          "$ref": "#/$defs/UrlDrilldown"
        }
      ]
    },
    "MarkdownPanelConfig": {
      "additionalProperties": false,
      "description": "Configuration specific to Markdown panels.",
      "properties": {
        "content": {
          "description": "The Markdown content to be displayed in the panel.",
          "title": "Content",
          "type": "string"
        },
        "font_size": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The font size for the Markdown content, in pixels. Defaults to 12 if not set.",
          "title": "Font Size"
        },
        "links_in_new_tab": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If true, links in the Markdown content will open in a new tab. Defaults to false if not set.",
          "title": "Links In New Tab"
        }
      },
      "required": [
        "content"
      ],
      "title": "MarkdownPanelConfig",
      "type": "object"
    },
    "Position": {
      "additionalProperties": false,
      "description": "Panel position configuration.\n\nDetermines the x/y coordinates of a panel on the dashboard grid.\nIf not specified, the panel will be auto-positioned.",
      "properties": {
        "x": {
          "anyOf": [
            {
              "maximum": 48,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The horizontal starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
          "title": "X"
        },
        "y": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The vertical starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
          "title": "Y"
        }
      },
      "title": "Position",
      "type": "object"
    },
    "Size": {
      "additionalProperties": false,
      "description": "Panel size configuration.\n\nDetermines the width and height of a panel on the dashboard grid.\nWidth accepts semantic values ('whole', 'half', etc.) or integers.",
      "properties": {
        "w": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "enum": [
                "whole",
                "half",
                "third",
                "quarter",
                "sixth",
                "eighth"
              ],
              "type": "string"
            }
          ],
          "default": 12,
          "description": "The width of the panel in grid units.\n\nDefaults to 12 (quarter width). Accepts semantic values ('whole', 'half', 'third', 'quarter', 'sixth', 'eighth') or integers (1-48).",
          "title": "W"
        },
        "h": {
          "default": 8,
          "description": "The height of the panel in grid units. Defaults to 8.",
          "exclusiveMinimum": 0,
          "title": "H",
          "type": "integer"
        }
      },
      "title": "Size",
      "type": "object"
    },
    "UrlDrilldown": {
      "additionalProperties": false,
      "description": "URL drilldown configuration.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
          "title": "Id"
        },
        "name": {
          "description": "Display name for the drilldown.",
          "title": "Name",
          "type": "string"
        },
        "triggers": {
          "description": "List of triggers that activate this drilldown. Defaults to ['click'].",
          "items": {
            "$ref": "#/$defs/DrilldownTrigger"
          },
          "title": "Triggers",
          "type": "array"
        },
        "url": {
          "description": "Target URL template. Can include Kibana template variables.",
          "title": "Url",
          "type": "string"
        },
        "new_tab": {
          "default": false,
          "description": "Whether to open the URL in a new tab. Defaults to False.",
          "title": "New Tab",
          "type": "boolean"
        },
        "encode_url": {
          "default": true,
          "description": "Whether to URL-encode the template variables. Defaults to True.",
          "title": "Encode Url",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "url"
      ],
      "title": "UrlDrilldown",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "Represents a Markdown panel configuration.\n\nMarkdown panels are used to display rich text content using Markdown syntax.\n\nExamples:\n    Minimal Markdown panel:\n    ```yaml\n    dashboards:\n      - name: \"Dashboard with Markdown\"\n        panels:\n          - title: \"Welcome Note\"\n            size: { w: 48, h: 3 }\n            markdown:\n              content: |\n                ## Welcome to the Dashboard!\n                This panel provides an overview of the key metrics and reports available.\n\n                - Item 1\n                - Item 2\n    ```\n\n    Markdown panel with custom font size:\n    ```yaml\n    dashboards:\n      - name: \"Informational Dashboard\"\n        panels:\n          - title: \"Important Instructions\"\n            size: { w: 32, h: 5 }\n            markdown:\n              content: |\n                # Setup Guide\n\n                Please follow the [official documentation](https://strawgate.github.io/kb-yaml-to-lens/) for setup instructions.\n\n                Key steps:\n                1. **Download** the installer.\n                2. **Configure** the `config.yaml` file.\n                3. **Run** the start script.\n              font_size: 14\n    ```",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
      "title": "Id"
    },
    "title": {
      "default": "",
      "description": "The title displayed on the panel header. Can be an empty string.",
      "title": "Title",
      "type": "string"
    },
    "hide_title": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
      "title": "Hide Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
      "title": "Description"
    },
    "size": {
      "$ref": "#/$defs/Size",
      "description": "Defines the panel's size on the dashboard grid."
    },
    "position": {
      "$ref": "#/$defs/Position",
      "description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
    },
    "drilldowns": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/DrilldownTypes"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional list of drilldowns to attach to this panel.",
      "title": "Drilldowns"
    },
    "markdown": {
      "$ref": "#/$defs/MarkdownPanelConfig",
      "description": "Markdown panel configuration."
    }
  },
  "required": [
    "markdown"
  ],
  "title": "MarkdownPanel",
  "type": "object"
}

Markdown Panel Configuration

Configuration specific to Markdown panels.

Attributes:

Name Type Description
content str

The Markdown content to be displayed in the panel.

font_size int | None

The font size for the Markdown content, in pixels. Defaults to 12 if not set.

links_in_new_tab bool | None

If true, links in the Markdown content will open in a new tab. Defaults to false if not set.

Show JSON schema:
{
  "additionalProperties": false,
  "description": "Configuration specific to Markdown panels.",
  "properties": {
    "content": {
      "description": "The Markdown content to be displayed in the panel.",
      "title": "Content",
      "type": "string"
    },
    "font_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The font size for the Markdown content, in pixels. Defaults to 12 if not set.",
      "title": "Font Size"
    },
    "links_in_new_tab": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If true, links in the Markdown content will open in a new tab. Defaults to false if not set.",
      "title": "Links In New Tab"
    }
  },
  "required": [
    "content"
  ],
  "title": "MarkdownPanelConfig",
  "type": "object"
}