pandoc/test/command/shift-heading-level-by.md
John MacFarlane 992f77c17c Roll back part of of --shift-heading-level-by change.
With positive heading shifts, starting in 2.8 this option caused
metadata titles to be removed and changed to regular headings.
This behavior is incompatible with the old behavior of
`--base-header-level` and breaks old workflows, so with this
commit we are rolling back this change.

Now, there is an asymmetry in positive and negative heading
level shifts:

+ With positive shifts, the metadata title stays the same and
  does not get changed to a heading in the body.
+ With negative shifts, a heading can be converted into the
  metadata title.

I think this is a desirable combination of features, despite
the asymmetry.  One might, e.g., want to have a document
with level-1 section headigs, but render it to HTML with
level-2 headings, retaining the metadata title (which pandoc
will render as a level-1 heading with the default template).

Closes #5957.
Revises #5615.
2019-12-05 09:59:50 -08:00

654 B

% pandoc --shift-heading-level-by 1 -t native -s
---
title: My title
...

# First heading

## Second
^D
Pandoc (Meta {unMeta = fromList [("title",MetaInlines [Str "My",Space,Str "title"])]})
[Header 2 ("first-heading",[],[]) [Str "First",Space,Str "heading"]
,Header 3 ("second",[],[]) [Str "Second"]]
% pandoc --shift-heading-level-by -1 -t native -s
---
title: Old title
...

# First heading

## Second

# Another top-level heading
^D
Pandoc (Meta {unMeta = fromList [("title",MetaInlines [Str "First",Space,Str "heading"])]})
[Header 1 ("second",[],[]) [Str "Second"]
,Para [Str "Another",Space,Str "top-level",Space,Str "heading"]]