Safe Haskell | None |
---|
Microformats 2 types for Haskell.
Notes:
- Pretty much all properties in MF2 are optional -- this is why we use Maybe when lists don't make sense.
- We don't duplicate sub-properties in parent types. E.g. h-adr has both p-geo and p-latitude, p-longitude, p-altitude. Adr only has an Embedded Geo.
- Lazy Text is used for storing texts, because it's the format used in Scotty, Hastache and other popular web libraries.
- type Link a = Text
- data Embedded a
- hereFromMaybe :: Maybe a -> Embedded a
- somewhereFromMaybe :: Maybe (Link a) -> Embedded a
- data Geo = Geo {}
- defaultGeo :: Geo
- data Adr = Adr {}
- defaultAdr :: Adr
- data Card = Card {
- cardName :: Maybe Text
- cardHonorificPrefix :: Maybe Text
- cardGivenName :: Maybe Text
- cardAdditionalName :: Maybe Text
- cardFamilyName :: Maybe Text
- cardSortString :: Maybe Text
- cardHonorificSuffix :: Maybe Text
- cardNickname :: Maybe Text
- cardEmail :: Maybe Text
- cardLogo :: Maybe Text
- cardPhoto :: Maybe Text
- cardUrl :: Maybe Text
- cardUid :: Maybe Text
- cardCategory :: [Text]
- cardAdr :: Embedded Adr
- cardTel :: Maybe Text
- cardNote :: Maybe Text
- cardBday :: Maybe UTCTime
- cardKey :: Maybe Text
- cardOrg :: Embedded Card
- cardJobTitle :: Maybe Text
- cardRole :: Maybe Text
- cardImpp :: [Text]
- cardSex :: Maybe Text
- cardGenderIdentity :: Maybe Text
- cardAnniversary :: Maybe UTCTime
- defaultCard :: Card
- data Cite = Cite {}
- defaultCite :: Cite
- type LocationReference = Either (Embedded Card) (Embedded Adr)
- type EntryReference = Either (Embedded Cite) (Link Entry)
- data Entry = Entry {
- entryName :: Maybe Text
- entrySummary :: Maybe Text
- entryContent :: Maybe Text
- entryPublished :: Maybe UTCTime
- entryUpdated :: Maybe UTCTime
- entryAuthor :: Embedded Card
- entryCategory :: [Text]
- entryUrl :: Maybe Text
- entryUid :: Maybe Text
- entryLocation :: Maybe LocationReference
- entryComments :: [EntryReference]
- entrySyndication :: [Text]
- entryInReplyTo :: Maybe EntryReference
- entryLikeOf :: Maybe EntryReference
- entryRepostOf :: Maybe EntryReference
- defaultEntry :: Entry
Documentation
An alias for lazy Text as a phantom type for storing the type of linked data.
A type that represents all the ways Microformats objects can be embedded inside one another.
hereFromMaybe :: Maybe a -> Embedded aSource
somewhereFromMaybe :: Maybe (Link a) -> Embedded aSource
Converts a Maybe Link to an Embedded referencing the same URL.
A Geo type, based on h-geo http://microformats.org/wiki/h-geo
Geo | |
|
An empty Geo.
An Adr type, based on h-adr http://microformats.org/wiki/h-adr
Adr | |
|
An empty Adr.
A Card type, based on h-card http://microformats.org/wiki/h-card
Card | |
|
An empty Card.
A Cite type, based on h-cite http://microformats.org/wiki/h-cite
Cite | |
|
An empty Cite.
type LocationReference = Either (Embedded Card) (Embedded Adr)Source
A location reference. Left means a Card is used, which is often used for checkins. Right means an Adr is used. If you only have a Geo, wrap it in an Adr.
An Entry type, based on h-entry http://microformats.org/wiki/h-entry with popular extensions.
Entry | |
|
An empty Entry.