[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Lesser blocks allowing unescaped lines
From: |
Ihor Radchenko |
Subject: |
Re: Lesser blocks allowing unescaped lines |
Date: |
Thu, 05 Oct 2023 10:29:38 +0000 |
"Tom Alexander" <tom@fizz.buzz> writes:
> This happens in worg at:
> https://git.sr.ht/~bzg/worg/tree/ba6cda890f200d428a5d68e819eef15b5306055f/exporters/ox-docstrings.org#L2490
>
> The documentation for lesser blocks[1] states:
>> Lines beginning with an asterisk or `#+` must be quoted by a comma (`,*`,
>> `,#+`).
>
> However, the following test document parses as a lesser block despite
> containing a line starting with an unescaped #+:
> ```
> #+CATEGORY: foo
> #+begin_src text
> #+CATEGORY: bar
> #+end_src
> ```
Escaping #+ lines is optional and mostly necessary to avoid confusing
parser.
For example, one would need to escape
#+CATEGORY: foo
#+begin_src text
,#+end_src
#+end_src
for obvious reasons.
I have clarified the syntax document in
https://git.sr.ht/~bzg/worg/commit/b1d16efc
Hope the new examples explain better what is going on.
> This test document shows that lines with an unescaped "*" do break up the
> lesser block:
> ```
> * foo
> #+begin_src text
> * bar
> #+end_src
> ```
Unlike #+ lines, * is _always_ interpreted as a heading. So, it must
always be escaped.
The parser simply removes commas in all the ,* and ,#+ lines.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>