docstr: Adds markdown to the card replacing the variable name in the CardTab template.
  
  :param name: name of the variable in the CardTab Jinja2 template
  :param markdown: the markdown content
  :return: the updated card tab instance
docstr_tok: ["Adds","markdown","to","the","card","replacing","the","variable","name","in","the","CardTab","template",".",":","param","name",":","name","of","the","variable","in","the","CardTab","Jinja2","template",":","param","markdown",":","the","markdown","content",":","return",":","the","updated","card","tab","instance"]
code: def add_markdown(self, name: str, markdown: str) -> CardTab:
      """
      Adds markdown to the card replacing the variable name in the CardTab template.
  
      :param name: name of the variable in the CardTab Jinja2 template
      :param markdown: the markdown content
      :return: the updated card tab instance
      """
      from markdown import markdown as md_to_html
  
      self.add_html(name, md_to_html(markdown))
      return self
  
imports: from __future__ import annotations
  import base64
  import html
  import logging
  import os
  import pathlib
  import pickle
  import random
  import re
  import string
  from io import StringIO
  from typing import Optional, Union
  from packaging.version import Version
  from mlflow.exceptions import INVALID_PARAMETER_VALUE, MlflowException
label_desc: Use image node_id 3 for calling the CardTab obj's underlying member method code with example usage: obj.add_markdown(name, markdown) and returns: self