**Apache Airflow version**: 1.10.14

**Environment**:

- **Cloud provider or hardware configuration**: docker
- **OS** (e.g. from /etc/os-release): apache/airflow:1.10.14-python3.8
- **Kernel** (e.g. `uname -a`): Linux host 5.4.0-62-generic #70-Ubuntu SMP Tue Jan 12 12:45:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
- **Install tools**: Docker version 19.03.8, build afacb8b7f0
- **Others**:

**What happened**:
I created a DAG and set the doc_md property on the object but it isn't being rendered in the UI.

**What you expected to happen**:
I expected the markdown to be rendered in the UI

**How to reproduce it**:
Created a new container using the `airflow:1.10.14`, I have tried the following images with the same results.

-  airflow:1.10.14:image-python3.8
-  airflow:1.10.14:image-python3.7
-  airflow:1.10.12:image-python3.7
-  airflow:1.10.12:image-python3.7

```
dag_docs = """
## Pipeline

#### Purpose
This is a pipeline
"""

dag = DAG(
    'etl-get_from_api',
    default_args=default_args,
    description='A simple dag',
    schedule_interval=timedelta(days=1),
)
dag.doc_md = dag_docs

```

![image](https://user-images.githubusercontent.com/29732449/105004686-6b77d680-5a88-11eb-9e34-c8dd38b3fd10.png)

![image](https://user-images.githubusercontent.com/29732449/105004748-7af71f80-5a88-11eb-811c-11bc6a351c71.png)

I have also tried with using a doc-string to populate the doc_md as well as adding some text within the constructor.

```
dag = DAG(
    'etl-get_from_api',
    default_args=default_args,
    description='A simple dag',
    schedule_interval=timedelta(days=1),
    doc_md = "some text"
)
```
All of the different permutations I've tried seem to have the same result. The only thing I can change is the description, that appears to show up correctly.

**Anything else we need to know**:
I have tried multiple browsers (Firefox and Chrome) and I have also done an inspect on from both the graph view and the tree view from within the dag but I can't find any of the text within the page at all.

airflow/models/baseoperator.py
from airflow.utils.weight_rule import WeightRule
if TYPE_CHECKING:
    from airflow.utils.task_group import TaskGroup  
ScheduleInterval = Union[str, timedelta, relativedelta]
TaskStateChangeCallback = Callable[[Context], None]
class BaseOperatorMeta(abc.ABCMeta):
    """Base metaclass of BaseOperator."""
    def __call__(cls, *args, **kwargs):
        """
        Called when you call BaseOperator(). In this way we are able to perform an action
        after initializing an operator no matter where  the ``super().__init__`` is called
        (before or after assign of new attributes in a custom operator).
        """
        obj: BaseOperator = type.__call__(cls, *args, **kwargs)
        
        obj.set_xcomargs_dependencies()
        
        obj._BaseOperator__instantiated = True
        return obj
@functools.total_ordering
class BaseOperator(Operator, LoggingMixin, TaskMixin, metaclass=BaseOperatorMeta):
    """
    Abstract base class for all operators. Since operators create objects that
    become nodes in the dag, BaseOperator contains many recursive methods for
    dag crawling behavior. To derive this class, you are expected to override
    the constructor as well as the 'execute' method.
    Operators derived from this class should perform or trigger certain tasks
    synchronously (wait for completion). Example of operators could be an
    operator that runs a Pig job (PigOperator), a sensor operator that
    waits for a partition to land in Hive (HiveSensorOperator), or one that