From 88dc6fac5d2d6f494e9c334261ecb40d3e156667 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 10 Sep 2019 23:16:13 -0700 Subject: Add --shift-heading-level-by option. Deprecate --base-heading-level. The new option does everything the old one does, but also allows negative shifts. It also promotes the document metadata (if not null) to a level-1 heading with a +1 shift, and demotes an initial level-1 heading to document metadata with a -1 shift. This supports converting documents that use an initial level-1 heading for the document title. Closes #5615. --- src/Text/Pandoc/App/CommandLineOptions.hs | 17 +++++++++++++++-- src/Text/Pandoc/App/Opt.hs | 2 ++ 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/Text/Pandoc/App') diff --git a/src/Text/Pandoc/App/CommandLineOptions.hs b/src/Text/Pandoc/App/CommandLineOptions.hs index ae12ba42c..cffe69eca 100644 --- a/src/Text/Pandoc/App/CommandLineOptions.hs +++ b/src/Text/Pandoc/App/CommandLineOptions.hs @@ -436,9 +436,22 @@ options = "SCRIPTPATH") "" -- "Lua filter" - , Option "" ["base-header-level"] + , Option "" ["shift-heading-level-by"] (ReqArg (\arg opt -> + case safeRead arg of + Just t -> + return opt{ optShiftHeadingLevel = t } + _ -> E.throwIO $ PandocOptionError + "shift-heading-level-by takes an integer argument") + "NUMBER") + "" -- "Shift heading level" + + , Option "" ["base-header-level"] + (ReqArg + (\arg opt -> do + deprecatedOption "--base-header-level" + "Use --shift-heading-level-by instead." case safeRead arg of Just t | t > 0 && t < 6 -> return opt{ optBaseHeaderLevel = t } @@ -450,7 +463,7 @@ options = , Option "" ["strip-empty-paragraphs"] (NoArg (\opt -> do - deprecatedOption "--stripEmptyParagraphs" + deprecatedOption "--strip-empty-paragraphs" "Use +empty_paragraphs extension." return opt{ optStripEmptyParagraphs = True })) "" -- "Strip empty paragraphs" diff --git a/src/Text/Pandoc/App/Opt.hs b/src/Text/Pandoc/App/Opt.hs index 0b7bb7f2c..1111a5457 100644 --- a/src/Text/Pandoc/App/Opt.hs +++ b/src/Text/Pandoc/App/Opt.hs @@ -50,6 +50,7 @@ data Opt = Opt , optReader :: Maybe String -- ^ Reader format , optWriter :: Maybe String -- ^ Writer format , optTableOfContents :: Bool -- ^ Include table of contents + , optShiftHeadingLevel :: Int -- ^ Shift heading level by , optBaseHeaderLevel :: Int -- ^ Base header level , optTemplate :: Maybe FilePath -- ^ Custom template , optVariables :: [(String,String)] -- ^ Template variables to set @@ -124,6 +125,7 @@ defaultOpts = Opt , optReader = Nothing , optWriter = Nothing , optTableOfContents = False + , optShiftHeadingLevel = 0 , optBaseHeaderLevel = 1 , optTemplate = Nothing , optVariables = [] -- cgit v1.2.3