Markdown Card


The Markdown card is used to render Markdown.

The renderer uses Marked.js, which supports several specifications of Markdown, including CommonMark, GitHub Flavored Markdown (GFM) and markdown.pl.

Screenshot of the markdown card Screenshot of the Markdown card.

To add the Markdown card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then Edit Dashboard. Click the “Add Card” button in the bottom right corner and select Markdown from the card picker.

Configuration Variables

type string Required
markdown
content string Required

Content to render as Markdown. May contain templates.

title string (Optional, default: none)

The card title.

card_size integer (Optional, default: none)

The algorithm for placing cards aesthetically in Lovelace may have problems with the Markdown card if it contains templates. You can use this value to help it estimate the height of the card in units of 50 pixels (approximately 3 lines of text in default size). (e.g., 4)

entity_id string | list (Optional, default: none)

A list of entity IDs so a template in content: only reacts to the state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities.

theme string (Optional)

Override the used theme for this card with any loaded theme. For more information about themes, see the frontend documentation.

Example

The card can also be configured using YAML, some examples below:

type: markdown
content: >
  ## Lovelace

  Starting with Home Assistant 0.72, we're experimenting with a new way of defining your interface. We're calling it the **Lovelace UI**.

Template variables

A special template variable - config is set up for the content of the card. It contains the configuration of the card.

For example:

type: entity-filter
entities:
  - light.bed_light
  - light.ceiling_lights
  - light.kitchen_lights
state_filter:
  - 'on'
card:
  type: markdown
  content: |
    The lights that are on are:
    {% for l in config.entities %}
      - {{ l.entity }}
    {%- endfor %}

    And the door is {% if is_state('binary_sensor.door', 'on') %} open {% else %} closed {% endif %}.

A special template variable - user is set up for the content of the card. It contains the currently logged in user.

For example:

type: markdown
content: |
  Hello, {{user}}

Icons

You can also use materialdesignicons.com icons in the content of the card.

For example:

type: markdown
content: |
  <ha-icon icon="mdi:home-assistant"></ha-icon>