Allow --shift-heading-level-by=-1 to work in djot...

...in the same way it works for other formats (with the top-level
heading being promoted to metadata title).  This needed special
treatment because of the way djot surrounds sections with Divs.

Closes #10459.
This commit is contained in:
John MacFarlane
2024-12-19 15:14:31 -08:00
parent 86dd2f7d66
commit 7cff3590bc
2 changed files with 16 additions and 0 deletions
+5
View File
@@ -154,6 +154,11 @@ headerShift n (Pandoc meta (Header m _ ils : bs))
| n < 0
, m + n == 0 = headerShift n $
B.setTitle (B.fromList ils) $ Pandoc meta bs
-- for this case, see #10459:
headerShift n (Pandoc meta (Div attr@(_,"section":_,_) (Header m _ ils : as) : bs))
| n < 0
, m + n == 0 = headerShift n $
B.setTitle (B.fromList ils) $ Pandoc meta (Div attr as : bs)
headerShift n (Pandoc meta bs) = Pandoc meta (walk shift bs)
where
+11
View File
@@ -0,0 +1,11 @@
```
% pandoc -s --shift-heading-level-by=-1 -f djot -t native
# hi
^D
Pandoc
Meta
{ unMeta =
fromList [ ( "title" , MetaInlines [ Str "hi" ] ) ]
}
[ Div ( "hi" , [ "section" ] , [] ) [] ]
```