**Apache Airflow version**: 2.0.0 - 2.1.0

**Kubernetes version**: N/A

**Environment**:

- **Cloud provider or hardware configuration**: Docker on MacOS (but also AWS ECS deployed)
- **OS** (e.g. from /etc/os-release): MacOS Big Sur 11.3.1
- **Kernel** (e.g. `uname -a`): Darwin Kernel Version 20.4.0
- **Install tools**:
- **Others**:

**What happened**:

When a code block is a part of a DAG's `doc_md`, it does not render correctly in the Web UI, but collapses all the lines into one line instead.

**What you expected to happen**:

The multi line code block be rendered with line breaks preserved.

**How to reproduce it**:
Create a DAG with `doc_md` containing a code block:

````python
from airflow import DAG

DOC_MD = """\
# Markdown code block

Inline `code` works well.

```
Code block
does not
respect
newlines
```
"""

dag = DAG(
    dag_id='test',
    doc_md=DOC_MD
)
````

The rendered documentation looks like this:
<img src="https://user-images.githubusercontent.com/11132999/119981579-19a70600-bfbe-11eb-8036-7d981ae1f232.png" width="50%"/>

**Anything else we need to know**: N/A


tests/www/test_utils.py
query = utils.get_params(tags=['tag1', 'tag2'], status='active', page=3, search='bash_')
        assert {
            'tags': ['tag1', 'tag2'],
            'page': ['3'],
            'search': ['bash_'],
            'status': ['active'],
        } == parse_qs(query)
    def test_params_escape(self):
        assert 'search=%27%3E%22%2F%3E%3Cimg+src%3Dx+onerror%3Dalert%281%29%3E' == utils.get_params(
            search="'>\"/><img src=x onerror=alert(1)>"
        )
    def test_state_token(self):
        
        
        html = str(utils.state_token('<script>alert(1)</script>'))
        assert '&lt;script&gt;alert(1)&lt;/script&gt;' in html
        assert '<script>alert(1)</script>' not in html
    def test_task_instance_link(self):
        from airflow.www.app import cached_app
        with cached_app(testing=True).test_request_context():
            html = str(
                utils.task_instance_link(
                    {'dag_id': '<a&1>', 'task_id': '<b2>', 'execution_date': datetime.now()}
                )
            )
        assert '%3Ca%261%3E' in html
        assert '%3Cb2%3E' in html
        assert '<a&1>' not in html
        assert '<b2>' not in html
    def test_dag_link(self):