aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-11-28 13:35:49 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2017-11-28 13:35:49 -0800
commit845b6c8670a6d1a11c1a31ec15ec2f0831883cbe (patch)
tree600be732d34508be96fa568fe514c0430cd0cfe3 /src/Text
parent00561b1bb956a5b4de291e80001cf752c38c4549 (diff)
downloadpandoc-845b6c8670a6d1a11c1a31ec15ec2f0831883cbe.tar.gz
Added --print-highlight-style option.
This generates a JSON version of a highlighting style, which can be saved as a .theme file, modified, and used with `--highlight-style`. Closes #4106. Closes #4096.
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/App.hs27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/Text/Pandoc/App.hs b/src/Text/Pandoc/App.hs
index 3c52e4247..f1c21c69a 100644
--- a/src/Text/Pandoc/App.hs
+++ b/src/Text/Pandoc/App.hs
@@ -63,7 +63,10 @@ import qualified Data.Yaml as Yaml
import GHC.Generics
import Network.URI (URI (..), parseURI)
import Paths_pandoc (getDataDir)
-import Skylighting (Style, Syntax (..), defaultSyntaxMap, parseTheme)
+import Data.Aeson.Encode.Pretty (encodePretty', Config(..), keyOrder,
+ defConfig, Indent(..), NumberFormat(..))
+import Skylighting (Style, Syntax (..), defaultSyntaxMap, parseTheme,
+ pygments)
import Skylighting.Parser (addSyntaxDefinition, missingIncludes,
parseSyntaxDefinition)
import System.Console.GetOpt
@@ -1047,6 +1050,28 @@ options =
"FILE")
"" -- "Print default data file"
+ , Option "" ["print-highlight-style"]
+ (ReqArg
+ (\arg _ -> do
+ sty <- fromMaybe pygments <$>
+ lookupHighlightStyle (Just arg)
+ B.putStr $ encodePretty'
+ defConfig{confIndent = Spaces 4
+ ,confCompare = keyOrder
+ (map T.pack
+ ["text-color"
+ ,"background-color"
+ ,"line-numbers"
+ ,"bold"
+ ,"italic"
+ ,"underline"
+ ,"text-styles"])
+ ,confNumFormat = Generic
+ ,confTrailingNewline = True} sty
+ exitSuccess)
+ "STYLE|FILE")
+ "" -- "Print default template for FORMAT"
+
, Option "" ["dpi"]
(ReqArg
(\arg opt ->