public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: BPJ <melroch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: pandoc-discuss <pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Cc: William Lupton
	<wlupton-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.org>
Subject: Re: Syntax errors in YAML blocks
Date: Wed, 2 Jun 2021 21:52:19 +0200	[thread overview]
Message-ID: <CADAJKhC2g4z_H+K+VtGoVd1T2nmYeMuRrnUquhDPpoYfuxSwWw@mail.gmail.com> (raw)
In-Reply-To: <m2a6o8ul91.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 5345 bytes --]

Perhaps it should be pointed out that the body of YAML block scalars must
be indented relative to the line with the `|` or `>`. Not doing so is
indeed a YAML syntax error, so Pandoc does the right thing when not
considering it valid YAML, however unfortunate it is that Pandoc may think
it is something else.

The overview of YAML syntax on Wikipedia is quite good. Perhaps the manual
could link to (some specific version of) it.

https://en.m.wikipedia.org/wiki/YAML#Syntax

Den ons 2 juni 2021 21:21John MacFarlane <jgm-TVLZxgkOlNX2fBVCVOL8/A@public.gmane.org> skrev:

>
> The problem is that basically anything is valid Markdown,
> it's just a matter of how it is interpreted.  It does seem
> to me that in the second case we might want to at least emit
> a warning -- if not downright fail.  It's just so unlikely
> that someone would write a block beginning with `---`
> and ending with `...` and intend it to be something other
> than YAML metadata.  If you'd like, you could submit an
> issue for this.  I'd rather not suggest avoiding complex
> YAML blocks -- sometimes they're fine, if the syntax is
> correct!
>
> William Lupton <wlupton-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.org> writes:
>
> > Thanks. Yes, I guess I realised it had something to do with ambiguous
> > grammars, but I hadn't really considered that my input was a valid table
> > (mea culpa).
> >
> > So I thought aha! I'll change the terminating "---" to "..." (in the hope
> > of an error), but this of course gives the output shown below.
> >
> > I wonder whether there could be a warning in the manual (or maybe there
> is
> > and I've missed it?) and/or perhaps a suggestion that it might be a good
> > idea to avoid complex YAML metadata blocks (in favour of metadata files)?
> > I'd be happy to create an issue and/or a MANUAL.md pull request.
> >
> > % cat bad.md
> > ---
> > history:
> > - number: Release 1.2
> >   changes: |
> >   - TBD
> > ...
> >
> > % pandoc bad.md
> > <hr />
> > <p>history: - number: Release 1.2 changes: | - TBD …</p>
> >
> >
> > On Wed, 2 Jun 2021 at 17:47, John MacFarlane <jgm-TVLZxgkOlNX2fBVCVOL8/A@public.gmane.org> wrote:
> >
> >>
> >> Well, this actually IS a valid "simple table".  So how is
> >> pandoc to know that you intended it as a YAML metadata block?
> >> Pandoc tries first to parse things as YAML blocks, and then as
> >> tables, if either works, the parse succeeds with no error.
> >>
> >> William Lupton <wlupton-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.org> writes:
> >>
> >> > Should I expect syntax errors in YAML blocks to be detected and
> reported?
> >> >
> >> > This has a syntax error in the YAML block:
> >> >
> >> > % cat bad.md
> >> > ---
> >> > history:
> >> > - number: Release 1.2
> >> >   changes: |
> >> >   - TBD
> >> > ---
> >> >
> >> > This fixes it:
> >> >
> >> > % diff bad.md good.md
> >> > 5c5
> >> > <   - TBD
> >> > ---
> >> >>     - TBD
> >> >
> >> > The latest pandoc:
> >> >
> >> > % ~/Downloads/pandoc-2.14.0.1/bin/pandoc -v
> >> > pandoc 2.14.0.1
> >> > ...
> >> >
> >> > Pandoc thinks the bad YAML is a table:
> >> >
> >> > % ~/Downloads/pandoc-2.14.0.1/bin/pandoc bad.md
> >> > <table>
> >> > <tbody>
> >> > <tr class="odd">
> >> > <td>history:</td>
> >> > </tr>
> >> > <tr class="even">
> >> > <td>- number: Release 1.2</td>
> >> > </tr>
> >> > <tr class="odd">
> >> > <td>changes: |</td>
> >> > </tr>
> >> > <tr class="even">
> >> > <td>- TBD</td>
> >> > </tr>
> >> > </tbody>
> >> > </table>
> >> >
> >> > But it's OK with the good YAML:
> >> >
> >> > % ~/Downloads/pandoc-2.14.0.1/bin/pandoc good.md
> >> >
> >> > Parsing the file as YAML reports the error:
> >> >
> >> > % ~/Downloads/pandoc-2.14.0.1/bin/pandoc --metadata-file bad.md
> >> > Error at "bad.md" (line 5, column 0):
> >> > Unexpected ' '
> >> >
> >> > % ~/Downloads/pandoc-2.14.0.1/bin/pandoc --metadata-file good.md
> >> > ^C
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> Groups "pandoc-discuss" group.
> >> > To unsubscribe from this group and stop receiving emails from it, send
> >> an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> >> > To view this discussion on the web visit
> >>
> https://groups.google.com/d/msgid/pandoc-discuss/CAEe_xxjF3Un2J-xg5UOs7uReZ5cO27TATA%2BfDY%2BAtghAsVhShA%40mail.gmail.com
> >> .
> >>
>
> --
> You received this message because you are subscribed to the Google Groups
> "pandoc-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/pandoc-discuss/m2a6o8ul91.fsf%40johnmacfarlane.net
> .
>

-- 
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CADAJKhC2g4z_H%2BK%2BVtGoVd1T2nmYeMuRrnUquhDPpoYfuxSwWw%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 8260 bytes --]

  parent reply	other threads:[~2021-06-02 19:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-02 13:42 William Lupton
     [not found] ` <CAEe_xxjF3Un2J-xg5UOs7uReZ5cO27TATA+fDY+AtghAsVhShA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-06-02 16:46   ` John MacFarlane
     [not found]     ` <m2o8cousce.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
2021-06-02 17:09       ` William Lupton
     [not found]         ` <CAEe_xxiHXF5vQTwyoUVLErHXSb+iMQvUaodU3aPbjnJ=fT54dQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-06-02 19:20           ` John MacFarlane
     [not found]             ` <m2a6o8ul91.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
2021-06-02 19:52               ` BPJ [this message]
     [not found]                 ` <CADAJKhC2g4z_H+K+VtGoVd1T2nmYeMuRrnUquhDPpoYfuxSwWw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-06-03  4:49                   ` John MacFarlane
     [not found]                     ` <m21r9jv9gv.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
2021-06-03  8:10                       ` William Lupton
     [not found]                         ` <CAEe_xxgTz6jLbWSK1t6Ln_xgr=LDk9XUDbomQH6nWvvTRQVC3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-06-21 13:43                           ` William Lupton
     [not found]                             ` <CAEe_xxj-bHpfTLDhz5QRz51x-zcs+VW5dgWbmRTRaNL+x6Y31Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-06-21 14:36                               ` BPJ
     [not found]                                 ` <CADAJKhAr3Q_FR8FaubSDUxj692uSwAhKgdVV8mDRw5eU7HmO0g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-06-21 22:00                                   ` John MacFarlane
     [not found]                                     ` <m27dimg9nv.fsf-d8241O7hbXoP5tpWdHSM3tPlBySK3R6THiGdP5j34PU@public.gmane.org>
2021-06-22  9:26                                       ` William Lupton
     [not found]                                         ` <CAEe_xxh-geLJmwn4cuYftHAVzA6UZKq9wUkE7s5hPvsUw88=Ew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-06-22 16:56                                           ` John MacFarlane
     [not found]                                             ` <m27dilon28.fsf-jF64zX8BO0+FqBokazbCQ6OPv3vYUT2dxr7GGTnW70NeoWH0uzbU5w@public.gmane.org>
2021-06-22 17:03                                               ` William Lupton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CADAJKhC2g4z_H+K+VtGoVd1T2nmYeMuRrnUquhDPpoYfuxSwWw@mail.gmail.com \
    --to=melroch-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=wlupton-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).