Incorrect formating of lists containing code blocks in markdown
Open
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 52.3k
- Forks
- 5k
- Avg merge
- 19h 2m
- Merged PRs (30d)
- 117
Description
Prettier 2.7.1
Playground link
--parser markdown
Input:
1. My first list item
```ts
import { /* ... */ } from 'my-package';
```
1. My second list item
```ts
import { /* ... */ } from 'my-package';
```
1. My third list item
```ts
import { /* ... */ } from 'my-package';
```
Output:
1. My first list item
```ts
import /* ... */ "my-package";
```
1. My second list item
```ts
import /* ... */ "my-package";
```
1. My third list item
```ts
import /* ... */ "my-package";
```
Expected behavior:
The expected output should have been:
1. My first list item
```ts
import { /* ... */ } from 'my-package';
```
1. My second list item
```ts
import { /* ... */ } from 'my-package';
```
1. My third list item
```ts
import { /* ... */ } from 'my-package';
```
- The curly braces should have been kept.
- The
fromkeyword should have been kept. - There should have been consistent line-return after the list item. In the current output only the last element has one line return, all others have 2 line returns before the code block.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the linked Playground example with the --parser markdown option and compare the formatter output with the stated expected output. The work is done when list items containing fenced TypeScript blocks retain their syntax and use consistent spacing before each code block.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, markdown, typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100