"Tom Alexander" <t...@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>