**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.

tests/www/test_utils.py
extra_links = 4  
        search = "'>\"/><img src=x onerror=alert(1)>"
        html_str = utils.generate_pages(current_page, total_pages, search=search)
        assert search not in html_str, "The raw search string shouldn't appear in the output"
        assert 'search=%27%3E%22%2F%3E%3Cimg+src%3Dx+onerror%3Dalert%281%29%3E' in html_str
        assert callable(html_str.__html__), "Should return something that is HTML-escaping aware"
        dom = BeautifulSoup(html_str, 'html.parser')
        assert dom is not None
        ulist = dom.ul
        ulist_items = ulist.find_all('li')
        assert min(window, total_pages) + extra_links == len(ulist_items)
        page_items = ulist_items[2:-2]
        mid = int(len(page_items) / 2)
        for i, item in enumerate(page_items):
            a_node = item.a
            href_link = a_node['href']
            node_text = a_node.string
            if node_text == str(current_page + 1):
                if check_middle:
                    assert mid == i
                assert 'javascript:void(0)' == href_link
                assert 'active' in item['class']
            else:
                assert re.search(r'^\?', href_link), 'Link is page-relative'
                query = parse_qs(href_link[1:])
                assert query['page'] == [str(int(node_text) - 1)]
                assert query['search'] == [search]
    def test_generate_pager_current_start(self):