**Apache Airflow version**: 2.0.2

**What happened**:

Tried to use the following markdown as a `doc_md` string passed to a DAG

```markdown
- Example
    -  Nested List
```

It was rendered in the web UI as a single list with no nesting or indentation.

**What you expected to happen**:

I expected the list to display as a nested list with visible indentation.

**How to reproduce it**:

Try and pass a DAG a `doc_md` string of the above nested list.
I think the bug will affect any markdown that relies on meaningful indentation (tabs or spaces)

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):