diff --git a/examples/example.1 b/examples/example.1
--- a/examples/example.1
+++ b/examples/example.1
@@ -10,6 +10,7 @@
 .Op Fl v
 .Op Fl a | Fl b
 .Op Fl i Ar INPUT
+.Op Fl t Ar arg
 .Op Fl Fl debug
 .Ar FILE
 .Op Ar FILE ...
@@ -22,6 +23,9 @@
 .It Fl b , Fl Fl banana
 Use bananas
 .It Fl i Ar INPUT
+.It Fl t Ar arg , Fl Fl template= Ns Ar arg
+A template
+(default: "With newlines\\n")
 .It Fl v , Fl Fl verbose
 .It Fl Fl debug
 Enable debug
diff --git a/mdoc.cabal b/mdoc.cabal
--- a/mdoc.cabal
+++ b/mdoc.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               mdoc
-version:            0.6.0.0
+version:            0.6.0.1
 license:            AGPL-3
 license-file:       COPYING
 maintainer:         Pat Brisbin
diff --git a/src/Mdoc/Data/Optionality.hs b/src/Mdoc/Data/Optionality.hs
--- a/src/Mdoc/Data/Optionality.hs
+++ b/src/Mdoc/Data/Optionality.hs
@@ -24,4 +24,4 @@
   toJSON = \case
     Optional -> object ["required" .= False]
     Required -> object ["required" .= True]
-    Defaulted s -> object ["required" .= False, "default" .= s]
+    Defaulted s -> object ["required" .= False, "default" .= esc (pack s)]
diff --git a/src/Mdoc/Examples/OptEnvConf.hs b/src/Mdoc/Examples/OptEnvConf.hs
--- a/src/Mdoc/Examples/OptEnvConf.hs
+++ b/src/Mdoc/Examples/OptEnvConf.hs
@@ -42,7 +42,7 @@
 
 {- FOURMOLU_DISABLE -}
 exampleParser :: Parser ()
-exampleParser = void $ (,,,,,,)
+exampleParser = void $ (,,,,,,,)
   <$>           setting   [ conf @Person "person", help "A person"
                           , example (unlines
                             [ "person:"
@@ -51,6 +51,7 @@
                           ]
   <*>           switch'   [           long "debug",                    help "Enable debug", env "DEBUG", conf "debug", example "# enable debug\ndebug: true"]
   <*>           switch'   [short 'v', long "verbose",                                                    conf "verbose"]
+  <*>           option'   [short 't', long "template",                 help "A template", value "With newlines\n"]
   <*> (         switch'   [short 'a', long "apple",                    help "Use apples"]
     <|>         switch'   [short 'b', long "banana",                   help "Use bananas"])
   <*> optional (option'   [short 'i',                 metavar "INPUT",                      env "INPUT"])
diff --git a/src/OptEnvConf/Mdoc.hs b/src/OptEnvConf/Mdoc.hs
--- a/src/OptEnvConf/Mdoc.hs
+++ b/src/OptEnvConf/Mdoc.hs
@@ -95,21 +95,20 @@
 setDocToFlag :: SetDoc -> Maybe Flag
 setDocToFlag doc = do
   guard $ setDocTrySwitch doc
-  flag <- dashedFlags $ setDocDasheds doc
-  flag <$ guard (isNothing $ setDocMetavar doc)
+  dashedFlags $ setDocDasheds doc
 
 setDocToOption :: SetDoc -> Maybe Option
 setDocToOption doc = do
   guard $ setDocTryOption doc
   flag <- dashedFlags $ setDocDasheds doc
-  schema <- setDocMetavar doc
+  let schema = fromMaybe "arg" $ setDocMetavar doc
   pure $ Option {flag, argument = fromString schema}
 
 setDocToArgument :: Int -> SetDoc -> Maybe Argument
 setDocToArgument index doc = do
   guard $ setDocTryArgument doc
   guard $ null $ setDocDasheds doc
-  schema <- setDocMetavar doc
+  let schema = fromMaybe "arg" $ setDocMetavar doc
   pure $ Argument {index, schema, optionality = Required}
 
 setDocToEnvVar :: SetDoc -> Maybe EnvVar
diff --git a/src/Options/Applicative/Mdoc.hs b/src/Options/Applicative/Mdoc.hs
--- a/src/Options/Applicative/Mdoc.hs
+++ b/src/Options/Applicative/Mdoc.hs
@@ -62,8 +62,8 @@
 addToPage index acc d = case O.optMain o of
   O.OptReader onames _ _ -> fromMaybe acc $ do
     flag <- optFlags onames
-    schema <- metavar
     let
+      schema = fromMaybe "arg" metavar
       argument = Argument {index, schema, optionality = Required}
       option = Option {flag, argument}
     pure $ addOption (option <$ d) acc
@@ -71,8 +71,9 @@
     flag <- optFlags onames
     pure $ addSwitch (flag <$ d) acc
   O.ArgReader {} -> fromMaybe acc $ do
-    schema <- metavar
-    let argument = Argument {index, schema, optionality = Required}
+    let
+      schema = fromMaybe "arg" metavar
+      argument = Argument {index, schema, optionality = Required}
     pure $ addArgument (argument <$ d) acc
   O.CmdReader _mGroup cmds ->
     let
