slidevjs / slidev

Presentation Slides for Developers
https://sli.dev
MIT License
33.49k stars 1.37k forks source link

`}` in code block options #1785

Open pinage404 opened 3 months ago

pinage404 commented 3 months ago

Hi,

Describe the bug

slidev build fails after upgrade with Invalid end tag

Minimal reproduction

Steps to reproduce the behavior:

I did a minimal reproductible test repository https://gitlab.com/pinage404/slidev_broken_upgrade

With this content in a slides.md

<div>

```txt {editorOptions:{lineNumbers:'off'}}
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q]
```

<span v-mark.box>

```txt {editorOptions:{lineNumbers:'off'}}
[<commit>]
```

</span>

</div>

With slidev@0.49.16, slidev build works With slidev@0.49.17, slidev build fails stdout stderr With slidev@0.49.22 (current latest), slidev build still fails stdout stderr

Additional context

I'm trying to upgrade this slide (the corresponding code)

Environment

If you are using Slidev globally (i.e. npx slidev or npm i -g slidev), please try to reproduce the issue in a local project (i.e. npm create slidev@latest). I prefer to have a reproductible setup, i avoid globally installed tools that are specific to a project

Thank you for maintaining slidev, it's an amazing project, that evolves really quickly, it's really enjoyable !

KermanX commented 3 months ago

I am not sure about the usage of the options in your code. The options seem to be Monaco Editor options, but the code block is a normal code block.

To define a Monaco Editor:

```txt {monaco}{editorOptions:{lineNumbers:'off'}}
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q]

To define a code block without line numbers:

````md
```txt {*}{lines:false}
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q]


However, the code block transformer does have some problems when there are `}` inside the option.
pinage404 commented 3 months ago

I am not sure about the usage of the options in your code. The options seem to be Monaco Editor options, but the code block is a normal code block.

This is the way I found to disable it :shrug:

Thanks for your comment, it helped me find another solution

Should we close this issue ?

KermanX commented 3 months ago

Let's keep the issue open to keep track of the problem of } inside the option. Thank you for letting us know this.