@@ -250,7 +250,7 @@ const org_grammar = {
250
250
field ( 'name' , $ . expr ) ,
251
251
optional ( repeat1 ( field ( 'parameter' , $ . expr ) ) ) ,
252
252
$ . _nl ,
253
- optional ( field ( 'contents' , $ . contents ) ) ,
253
+ optional ( field ( 'contents' , alias ( $ . _block_contents , $ . contents ) ) ) ,
254
254
alias ( / # \+ e n d _ / i, '#+end_' ) ,
255
255
field ( 'end_name' , alias ( $ . _immediate_expr , $ . expr ) ) ,
256
256
$ . _eol ,
@@ -262,12 +262,18 @@ const org_grammar = {
262
262
field ( 'name' , $ . expr ) ,
263
263
repeat ( field ( 'parameter' , $ . expr ) ) ,
264
264
$ . _nl ,
265
- optional ( field ( 'contents' , $ . contents ) ) ,
265
+ optional ( field ( 'contents' , alias ( $ . _block_contents , $ . contents ) ) ) ,
266
266
alias ( / # \+ e n d : / i, '#+end:' ) ,
267
267
optional ( field ( 'end_name' , $ . expr ) ) ,
268
268
$ . _eol ,
269
269
) ,
270
270
271
+ _block_contents : $ => seq (
272
+ optional ( repeat1 ( $ . expr ) ) ,
273
+ repeat1 ( $ . _nl ) ,
274
+ repeat ( seq ( repeat1 ( $ . expr ) , repeat1 ( $ . _nl ) ) ) ,
275
+ ) ,
276
+
271
277
list : $ => seq (
272
278
optional ( $ . _directive_list ) ,
273
279
$ . _liststart , // captures indent length and bullet type
@@ -329,19 +335,19 @@ const org_grammar = {
329
335
field ( 'name' , alias ( / [ \p{ L} \p{ N} * ] + / , $ . name ) ) ,
330
336
token . immediate ( '}' ) ,
331
337
$ . _nl ,
332
- optional ( field ( 'contents' , $ . contents ) ) ,
338
+ optional ( field ( 'contents' , alias ( $ . _block_contents , $ . contents ) ) ) ,
333
339
alias ( / \\ e n d \{ / i, '\\end{' ) ,
334
340
alias ( / [ \p{ L} \p{ N} * ] + / , $ . name ) ,
335
341
token . immediate ( '}' ) ,
336
342
) ,
337
343
seq (
338
344
token ( seq ( '\\[' , choice ( '\n' , '\r' ) ) ) ,
339
- optional ( field ( 'contents' , $ . contents ) ) ,
345
+ optional ( field ( 'contents' , alias ( $ . _block_contents , $ . contents ) ) ) ,
340
346
'\\]' ,
341
347
) ,
342
348
seq (
343
349
token ( seq ( '\\(' , choice ( '\n' , '\r' ) ) ) ,
344
- optional ( field ( 'contents' , $ . contents ) ) ,
350
+ optional ( field ( 'contents' , alias ( $ . _block_contents , $ . contents ) ) ) ,
345
351
'\\)' ,
346
352
) ,
347
353
) ,
0 commit comments