rasendubi / uniorg

An accurate Org-mode parser for JavaScript/TypeScript
https://oleksii.shmalko.com/uniorg
GNU General Public License v3.0
263 stars 25 forks source link

Lost space symbol after checkbox values #40

Closed Artawower closed 1 year ago

Artawower commented 2 years ago

Hello! I tried to parse structure like this:

console.log(
  stringify(
    parse(`
- [ ] checkbox 1
- [ ] checkbox 2`)
  ),
  null,
  2
);

And i see next output:

- [ ]checkbox 1
- [ ]checkbox 2

But I was expecting the original text, is this expected behavior? (Space symbol is lost at the moment of parsing)

rasendubi commented 2 years ago

Hey, thanks for the bug report!

It's more likely that space is lost in the uniorg-stringify rather than parser.

One option to fix that is to add trailing whitespace for checkboxes here: https://github.com/rasendubi/uniorg/blob/da79786f7c3afda29f8fb65052e09ca4fec6d4f3/packages/uniorg-stringify/src/stringify.ts#L86-L92

Artawower commented 2 years ago

That makes sense, I thought it was a parser, because I expected the space character to be inside the "value" property. And a structure like children: [ { { { type: 'text', value: 'checkbox 2' } ] was expected as children: [ { { { type: 'text', value: ' checkbox 2' } ]. But if it's a stringify thing, that's probably even easier to fix 🙂

rasendubi commented 1 year ago

This is fixed in uniorg-stringify@1.0.1