Browsable API markdown description broken if tabs are used in code indentation. · Issue #4345 · encode/django-rest-framework (original) (raw)
get_view_description(html=True) with markdown installed is broken if the project uses tabs instead of spaces. Everything after the first line is rendered as a <pre>
block.
The problem is in the utils.formatting.dedent() function which only dedents spaces, not tabs.
Checklist
- I have verified that that issue exists against the
master
branch of Django REST framework. - I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
- This is not a usage question. (Those should be directed to the discussion group instead.)
- This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
- I have reduced the issue to the simplest possible case.
- I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)
Steps to reproduce
from rest_framework.utils.formatting import dedent dedent("\tfirst string\n\n\tsecond string")
Expected behavior
It returns:
u'first string\n\n\tsecond string'
Actual behavior
It should return:
u'first string\n\nsecond string'