citeproc-0.8.1: Generates citations and bibliography from CSL styles.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Citeproc.CslJson

Description

CSL JSON is the structured text format defined in https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html. It is used to represent formatted text inside CSL JSON bibliographies. For the most part it is a subset of HTML, with some special features like smart quote parsing. This module defines a parser and a renderer for this format, as well as CiteprocOutput and other typeclass instances.

Synopsis

Documentation

data CslJson a Source #

Instances

Instances details
Foldable CslJson Source # 
Instance details

Defined in Citeproc.CslJson

Methods

fold :: Monoid m => CslJson m -> m

foldMap :: Monoid m => (a -> m) -> CslJson a -> m

foldMap' :: Monoid m => (a -> m) -> CslJson a -> m

foldr :: (a -> b -> b) -> b -> CslJson a -> b

foldr' :: (a -> b -> b) -> b -> CslJson a -> b

foldl :: (b -> a -> b) -> b -> CslJson a -> b

foldl' :: (b -> a -> b) -> b -> CslJson a -> b

foldr1 :: (a -> a -> a) -> CslJson a -> a

foldl1 :: (a -> a -> a) -> CslJson a -> a

toList :: CslJson a -> [a]

null :: CslJson a -> Bool

length :: CslJson a -> Int

elem :: Eq a => a -> CslJson a -> Bool

maximum :: Ord a => CslJson a -> a

minimum :: Ord a => CslJson a -> a

sum :: Num a => CslJson a -> a

product :: Num a => CslJson a -> a

Traversable CslJson Source # 
Instance details

Defined in Citeproc.CslJson

Methods

traverse :: Applicative f => (a -> f b) -> CslJson a -> f (CslJson b)

sequenceA :: Applicative f => CslJson (f a) -> f (CslJson a)

mapM :: Monad m => (a -> m b) -> CslJson a -> m (CslJson b) #

sequence :: Monad m => CslJson (m a) -> m (CslJson a) #

Functor CslJson Source # 
Instance details

Defined in Citeproc.CslJson

Methods

fmap :: (a -> b) -> CslJson a -> CslJson b #

(<$) :: a -> CslJson b -> CslJson a #

FromJSON (CslJson Text) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

parseJSON :: Value -> Parser (CslJson Text)

parseJSONList :: Value -> Parser [CslJson Text]

ToJSON (CslJson Text) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

toJSON :: CslJson Text -> Value

toEncoding :: CslJson Text -> Encoding

toJSONList :: [CslJson Text] -> Value

toEncodingList :: [CslJson Text] -> Encoding

Monoid (CslJson a) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

mempty :: CslJson a #

mappend :: CslJson a -> CslJson a -> CslJson a #

mconcat :: [CslJson a] -> CslJson a #

Semigroup (CslJson a) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

(<>) :: CslJson a -> CslJson a -> CslJson a #

sconcat :: NonEmpty (CslJson a) -> CslJson a #

stimes :: Integral b => b -> CslJson a -> CslJson a #

Show a => Show (CslJson a) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

showsPrec :: Int -> CslJson a -> ShowS

show :: CslJson a -> String

showList :: [CslJson a] -> ShowS

CiteprocOutput (CslJson Text) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

toText :: CslJson Text -> Text Source #

fromText :: Text -> CslJson Text Source #

dropTextWhile :: (Char -> Bool) -> CslJson Text -> CslJson Text Source #

dropTextWhileEnd :: (Char -> Bool) -> CslJson Text -> CslJson Text Source #

addFontVariant :: FontVariant -> CslJson Text -> CslJson Text Source #

addFontStyle :: FontStyle -> CslJson Text -> CslJson Text Source #

addFontWeight :: FontWeight -> CslJson Text -> CslJson Text Source #

addTextDecoration :: TextDecoration -> CslJson Text -> CslJson Text Source #

addVerticalAlign :: VerticalAlign -> CslJson Text -> CslJson Text Source #

addTextCase :: Maybe Lang -> TextCase -> CslJson Text -> CslJson Text Source #

addDisplay :: DisplayStyle -> CslJson Text -> CslJson Text Source #

addQuotes :: CslJson Text -> CslJson Text Source #

movePunctuationInsideQuotes :: CslJson Text -> CslJson Text Source #

inNote :: CslJson Text -> CslJson Text Source #

mapText :: (Text -> Text) -> CslJson Text -> CslJson Text Source #

addHyperlink :: Text -> CslJson Text -> CslJson Text Source #

localizeQuotes :: Locale -> CslJson Text -> CslJson Text Source #

Eq a => Eq (CslJson a) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

(==) :: CslJson a -> CslJson a -> Bool

(/=) :: CslJson a -> CslJson a -> Bool

Ord a => Ord (CslJson a) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

compare :: CslJson a -> CslJson a -> Ordering

(<) :: CslJson a -> CslJson a -> Bool

(<=) :: CslJson a -> CslJson a -> Bool

(>) :: CslJson a -> CslJson a -> Bool

(>=) :: CslJson a -> CslJson a -> Bool

max :: CslJson a -> CslJson a -> CslJson a

min :: CslJson a -> CslJson a -> CslJson a

Uniplate (CslJson a) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

uniplate :: CslJson a -> (Str (CslJson a), Str (CslJson a) -> CslJson a)

descend :: (CslJson a -> CslJson a) -> CslJson a -> CslJson a

descendM :: Applicative m => (CslJson a -> m (CslJson a)) -> CslJson a -> m (CslJson a)

Biplate (CslJson a) (CslJson a) Source # 
Instance details

Defined in Citeproc.CslJson

Methods

biplate :: CslJson a -> (Str (CslJson a), Str (CslJson a) -> CslJson a)

descendBi :: (CslJson a -> CslJson a) -> CslJson a -> CslJson a

descendBiM :: Applicative m => (CslJson a -> m (CslJson a)) -> CslJson a -> m (CslJson a)

cslJsonToJson :: CslJson Text -> [Value] Source #

renderCslJson Source #

Arguments

:: Bool

Escape & using entities

-> Locale

Locale (used for quote styles)

-> CslJson Text

CslJson to render

-> Text 

Render CslJson as Text. Set the first parameter to True when rendering HTML output (so that entities are escaped). Set it to False when rendering for CSL JSON bibliographies.

parseCslJson :: Locale -> Text -> CslJson Text Source #