mdoc-0.6.0.0: src/Mdoc/Data/Named.hs
-- |
--
-- Module : Mdoc.Data.Named
-- Copyright : (c) 2026 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Mdoc.Data.Named
( Named (..)
, name
) where
import Mdoc.Prelude
import Data.Aeson (object, (.=))
import Data.Text qualified as T
import Mdoc.Data.Page
data Named = Named
{ name :: Text
, description :: Text
, page :: Page
}
deriving stock (Eq, Generic, Show)
instance ToJSON Named where
toJSON named =
object
[ "title" .= T.toUpper (esc $ named.name)
, "name" .= esc named.name
, "description" .= esc named.description
, "page" .= named.page
]
name :: Text -> Text -> Page -> Named
name n description page = Named {name = n, description, page}