ema-0.8.2.0: Static site generator library with hot reload
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ema.Route.Class

Synopsis

Documentation

class IsRoute r where Source #

Class of Ema routes

An Ema route has a Prism' routePrism, that knows how to convert it to/from filepaths. As well as an universe function, routeUniverse, that gives all possible route values in a static site.

Both functions take the associated model, `RouteModel r`, as an argument.

Associated Types

type RouteModel r :: Type Source #

Methods

routePrism :: RouteModel r -> Prism_ FilePath r Source #

An optics Prism` that denotes how to encode and decode a route.

routeUniverse :: RouteModel r -> [r] Source #

All possible route values for the given RouteModel.

This is used in determining the pages to statically generate.

Instances

Instances details
IsRoute PandocRoute Source # 
Instance details

Defined in Ema.Route.Lib.Extra.PandocRoute

Associated Types

type RouteModel PandocRoute Source #

IsRoute () Source # 
Instance details

Defined in Ema.Route.Class

Associated Types

type RouteModel () Source #

IsRoute (SlugRoute a) Source # 
Instance details

Defined in Ema.Route.Lib.Extra.SlugRoute

Associated Types

type RouteModel (SlugRoute a) Source #

IsRoute (StaticRoute baseDir) Source # 
Instance details

Defined in Ema.Route.Lib.Extra.StaticRoute

Associated Types

type RouteModel (StaticRoute baseDir) Source #

KnownSymbol fn => IsRoute (FileRoute fn) Source # 
Instance details

Defined in Ema.Route.Lib.File

Associated Types

type RouteModel (FileRoute fn) Source #

(IsRoute r, IsRoute (MultiRoute rs), RouteModel (MultiRoute rs) ~ NP I (MultiModel rs)) => IsRoute (MultiRoute (r ': rs)) Source # 
Instance details

Defined in Ema.Route.Lib.Multi

Associated Types

type RouteModel (MultiRoute (r ': rs)) Source #

Methods

routePrism :: RouteModel (MultiRoute (r ': rs)) -> Prism_ FilePath (MultiRoute (r ': rs)) Source #

routeUniverse :: RouteModel (MultiRoute (r ': rs)) -> [MultiRoute (r ': rs)] Source #

IsRoute (MultiRoute ('[] :: [Type])) Source # 
Instance details

Defined in Ema.Route.Lib.Multi

Associated Types

type RouteModel (MultiRoute '[]) Source #

(VerifyRoutes (RCode r) (SubRoutes (GenericRoute r opts)), HasSubRoutes r, HasSubModels r, ValidSubRoutes r (SubRoutes r), RGeneric r, mr ~ MultiRoute (SubRoutes r), mm ~ MultiModel (SubRoutes r), RouteModel r ~ OptModel r opts, RouteModel mr ~ NP I mm, IsRoute mr, GenericRouteOpts r opts) => IsRoute (GenericRoute r opts) Source # 
Instance details

Defined in Ema.Route.Generic

Associated Types

type RouteModel (GenericRoute r opts) Source #

(IsRoute r, KnownSymbol prefix) => IsRoute (FolderRoute prefix r) Source # 
Instance details

Defined in Ema.Route.Lib.Folder

Associated Types

type RouteModel (FolderRoute prefix r) Source #