pro-abstract-0.3.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.3.0.0-CFjEApBZPUR1EoNCheWNFg" '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 (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type MetadataOpticKind (TaggedPlainBlock ann) Source #

HasMetadata (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (TaggedLines ann) Source #

HasMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Inline ann) Source #

HasMetadata (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (TaggedBlocks 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 (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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 (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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 (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

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.

data MetaItem Source #

Constructors

Property Text

key

Setting 

Fields

Instances

Instances details
Eq MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Ord MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Show MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Generic MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Associated Types

type Rep MetaItem :: Type -> Type #

Methods

from :: MetaItem -> Rep MetaItem x #

to :: Rep MetaItem x -> MetaItem #

NFData MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Methods

rnf :: MetaItem -> () #

Hashable MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Methods

hashWithSalt :: Int -> MetaItem -> Int #

hash :: MetaItem -> Int #

type Rep MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

type Rep MetaItem = D1 ('MetaData "MetaItem" "ProAbstract.Metadata.MetaItem" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Property" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "Setting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data MetaValue Source #

Instances

Instances details
Eq MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Ord MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Show MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Generic MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Associated Types

type Rep MetaValue :: Type -> Type #

Semigroup MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

NFData MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Methods

rnf :: MetaValue -> () #

Hashable MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

type Rep MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

type Rep MetaValue = D1 ('MetaData "MetaValue" "ProAbstract.Metadata.MetaValue" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "MetaValue_Property" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MetaValue_Setting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "MetaValue_PropertyAndSetting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))))