pro-abstract-0.1.0.0: Abstract syntax for writing documents
Safe HaskellNone
LanguageHaskell2010

ProAbstract.Metadata

Synopsis

Documentation

data Metadata Source #

A set of properties and settings, associated with a document or tag.

The namespaces of properties and settings are distinct; a property can share a name with a setting without conflict.

Instances

Instances details
Eq Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Show Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Generic Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Associated Types

type Rep Metadata :: Type -> Type #

Methods

from :: Metadata -> Rep Metadata x #

to :: Rep Metadata x -> Metadata #

Semigroup Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Monoid Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

NFData Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Methods

rnf :: Metadata -> () #

Hashable Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Methods

hashWithSalt :: Int -> Metadata -> Int #

hash :: Metadata -> Int #

HasMetadata Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.HasMetadata

Associated Types

type MetadataOpticKind Metadata Source #

type Rep Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

type Rep Metadata = D1 ('MetaData "Metadata" "ProAbstract.Metadata.MetadataType" "pro-abstract-0.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "Metadata" 'PrefixI 'True) (S1 ('MetaSel ('Just "metadataProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Text)) :*: S1 ('MetaSel ('Just "metadataSettings") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Text Text))))
type MetadataOpticKind Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.HasMetadata

class HasMetadata x where Source #

Associated Types

type MetadataOpticKind x Source #

Instances

Instances details
HasMetadata Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.HasMetadata

Associated Types

type MetadataOpticKind Metadata Source #

HasMetadata (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.TagType

Associated Types

type MetadataOpticKind (Tag ann) Source #

HasMetadata (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type MetadataOpticKind (Tagged (PlainBlock ann)) Source #

HasMetadata (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Tagged (Lines ann)) Source #

HasMetadata (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (Tagged (Blocks ann)) Source #

HasMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Inline ann) Source #

HasMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (Block ann) Source #

HasMetadata (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Associated Types

type MetadataOpticKind (Document ann) Source #

HasMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type MetadataOpticKind (BlockTag ann) Source #

class HasManyMetadata x where Source #

Instances

Instances details
HasManyMetadata (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyMetadata (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyMetadata (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyMetadata (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

properties :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Optic' k NoIx m (Set Text) Source #

Fetch all properties from items which contain metadata.

settings :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Optic' k NoIx m (Map Text Text) Source #

Fetch all settings defined on items which contain metadata.

hasProperty :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Text -> Optic' k NoIx m Bool Source #

Check if a property is attached to an item with metadata. Using this optic as a setter will add a property if set to True and remove the property when set to False.

atSetting :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Text -> Optic' k NoIx m (Maybe Text) Source #

Select a setting from an item attached to metadata. Returns Nothing if no value is set.