microsoft / microsoft/markitdown

fenced code blocks lose blank-line runs and trailing spaces during conversion

Open
#2,528 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
186k
Forks
13.7k
Avg merge
1d 4h
Merged PRs (30d)
49

Description

what happens

converting markdown through MarkItDown corrupts fenced code blocks:

  • two or more consecutive blank lines inside a fence collapse to one
  • trailing spaces on lines inside a fence get stripped
def a():
    pass


def b():
    pass

comes back with the double blank line gone, and line with trailing spaces loses its spaces.

why

the result normalization (rstrip each line, collapse 3+ newline runs) runs over the whole document with no awareness of code fences, so it mangles content where whitespace is significant.

expected

whitespace inside fenced code blocks (``` or ~~~) survives exactly; normalization still applies to prose outside fences.

env: main 945314a

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the result-normalization path in the Markdown conversion entry point and first reproduce the issue with the fenced examples from this report. Add regression coverage for both ``` and ~~~ fences, including repeated blank lines and trailing spaces, and verify that normalization still affects prose outside fences.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.