mdoc-0.2.0.0: src/Env/Mdoc.hs
-- |
--
-- Module : Env.Mdoc
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
--
-- See "Mdoc.Examples.Grep".
module Env.Mdoc
( getPage
) where
import Mdoc.Prelude
import Env.Internal.Free
import Env.Internal.Parser
import Mdoc.Data.Described
import Mdoc.Data.EnvVar
import Mdoc.Data.Optionality
import Mdoc.Data.Page
getPage :: Parser e a -> Page
getPage = flip appEndo mempty . foldAlt (Endo . addEnvVar . describeVarF) . unParser
describeVarF :: VarF e a -> Described EnvVar
describeVarF v =
Described
{ item = EnvVar {names = pure $ varfName v, argument = Nothing}
, optionality = maybe Required Defaulted (varfHelpDef v)
, multiple = False
, help = textToMdoc . pack =<< varfHelp v
}