Skip to content

Browsable API markdown description broken if tabs are used in code indentation. #4345

Closed
@dvarrazzo

Description

@dvarrazzo

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'

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions