Skip to content

Markdown code block rendering problem on Android #42

@bitmand

Description

@bitmand

Problem

When I send a message where the first characters, in the first line, in a code block, is whitespaces, like this:

```
          Some Text
          More Test
```

Then the prepended whitespaces is removed from the first line, when displayed on Android and message looks like this:

Some Text
          More Test

On Discord Desktop and iOS app, the same message is rendered the way I would expect it:

          Some Text
          More Test

A Wild Guess Appears

I tested this markdown code block regex, but the matching seems to work correctly:

  • The first group (optionally) matches the language ( line 298 val language = ... )
  • The second group has all the lines in the code block, including all the prepended whitespaces ( line 299 val codeBody = ... )

So my suspicion is that codeBody is trimmed (removing all prepending- and appending whitespaces, newlines etc.) later on. That would explain why it only happens on the first line of the code block.

But the only use of trim() I can find is in MarkdownRules.kt in a override fun parse() function:

val classes = matcher.group(2)?.trim()?.split(' ')

..and I have zero idea if it's related in any way.

There is also the possibility that this bug is outside of SimpleAST .. ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions