emanote-1.0.0.0: Emanate a structured view of your plain-text notes
Safe HaskellSafe-Inferred
LanguageHaskell2010

Emanote.Model.Type

Synopsis

Documentation

data Status Source #

Instances

Instances details
Show Status Source # 
Instance details

Defined in Emanote.Model.Type

Eq Status Source # 
Instance details

Defined in Emanote.Model.Type

Methods

(==) :: Status -> Status -> Bool #

(/=) :: Status -> Status -> Bool #

data ModelT encF Source #

Instances

Instances details
Generic Model Source # 
Instance details

Defined in Emanote.Model.Type

Associated Types

type Rep Model :: Type -> Type #

Methods

from :: Model -> Rep Model x #

to :: Rep Model x -> Model #

Generic ModelEma Source # 
Instance details

Defined in Emanote.Model.Type

Associated Types

type Rep ModelEma :: Type -> Type #

Methods

from :: ModelEma -> Rep ModelEma x #

to :: Rep ModelEma x -> ModelEma #

Generic (ModelT encF) Source # 
Instance details

Defined in Emanote.Model.Type

Associated Types

type Rep (ModelT encF) :: Type -> Type #

Methods

from :: ModelT encF -> Rep (ModelT encF) x #

to :: Rep (ModelT encF) x -> ModelT encF #

type Rep Model Source # 
Instance details

Defined in Emanote.Model.Type

type Rep Model = D1 ('MetaData "ModelT" "Emanote.Model.Type" "emanote-1.0.0.0-inplace" 'False) (C1 ('MetaCons "Model" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_modelStatus") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Status) :*: (S1 ('MetaSel ('Just "_modelLayers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Loc)) :*: S1 ('MetaSel ('Just "_modelEmaCLIAction") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Some Action)))) :*: ((S1 ('MetaSel ('Just "_modelRoutePrism") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Identity (Prism' FilePath SiteRoute))) :*: S1 ('MetaSel ('Just "_modelPandocRenderers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (EmanotePandocRenderers Model LMLRoute))) :*: (S1 ('MetaSel ('Just "_modelCompileTailwind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_modelInstanceID") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UUID)))) :*: (((S1 ('MetaSel ('Just "_modelNotes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxNote) :*: S1 ('MetaSel ('Just "_modelRels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxRel)) :*: (S1 ('MetaSel ('Just "_modelSData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxSData) :*: S1 ('MetaSel ('Just "_modelStaticFiles") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxStaticFile))) :*: ((S1 ('MetaSel ('Just "_modelTasks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxTask) :*: S1 ('MetaSel ('Just "_modelNav") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Tree Slug])) :*: (S1 ('MetaSel ('Just "_modelHeistTemplate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TemplateState) :*: S1 ('MetaSel ('Just "_modelStorkIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IndexVar))))))
type Rep Model Source # 
Instance details

Defined in Emanote.Model.Type

type Rep Model = D1 ('MetaData "ModelT" "Emanote.Model.Type" "emanote-1.0.0.0-inplace" 'False) (C1 ('MetaCons "Model" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_modelStatus") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Status) :*: (S1 ('MetaSel ('Just "_modelLayers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Loc)) :*: S1 ('MetaSel ('Just "_modelEmaCLIAction") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Some Action)))) :*: ((S1 ('MetaSel ('Just "_modelRoutePrism") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Identity (Prism' FilePath SiteRoute))) :*: S1 ('MetaSel ('Just "_modelPandocRenderers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (EmanotePandocRenderers Model LMLRoute))) :*: (S1 ('MetaSel ('Just "_modelCompileTailwind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_modelInstanceID") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UUID)))) :*: (((S1 ('MetaSel ('Just "_modelNotes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxNote) :*: S1 ('MetaSel ('Just "_modelRels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxRel)) :*: (S1 ('MetaSel ('Just "_modelSData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxSData) :*: S1 ('MetaSel ('Just "_modelStaticFiles") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxStaticFile))) :*: ((S1 ('MetaSel ('Just "_modelTasks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxTask) :*: S1 ('MetaSel ('Just "_modelNav") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Tree Slug])) :*: (S1 ('MetaSel ('Just "_modelHeistTemplate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TemplateState) :*: S1 ('MetaSel ('Just "_modelStorkIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IndexVar))))))
type Rep Model Source # 
Instance details

Defined in Emanote.Model.Type

type Rep Model = D1 ('MetaData "ModelT" "Emanote.Model.Type" "emanote-1.0.0.0-inplace" 'False) (C1 ('MetaCons "Model" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_modelStatus") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Status) :*: (S1 ('MetaSel ('Just "_modelLayers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Loc)) :*: S1 ('MetaSel ('Just "_modelEmaCLIAction") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Some Action)))) :*: ((S1 ('MetaSel ('Just "_modelRoutePrism") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Identity (Prism' FilePath SiteRoute))) :*: S1 ('MetaSel ('Just "_modelPandocRenderers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (EmanotePandocRenderers Model LMLRoute))) :*: (S1 ('MetaSel ('Just "_modelCompileTailwind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_modelInstanceID") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UUID)))) :*: (((S1 ('MetaSel ('Just "_modelNotes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxNote) :*: S1 ('MetaSel ('Just "_modelRels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxRel)) :*: (S1 ('MetaSel ('Just "_modelSData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxSData) :*: S1 ('MetaSel ('Just "_modelStaticFiles") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxStaticFile))) :*: ((S1 ('MetaSel ('Just "_modelTasks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IxTask) :*: S1 ('MetaSel ('Just "_modelNav") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Tree Slug])) :*: (S1 ('MetaSel ('Just "_modelHeistTemplate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TemplateState) :*: S1 ('MetaSel ('Just "_modelStorkIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IndexVar))))))

type ModelEma = ModelT (Const ()) Source #

A bare version of Model that is managed by the Ema app.

The only difference is that this one has no RouteEncoder.

modelTasks :: forall encF. Lens' (ModelT encF) IxTask Source #

modelStorkIndex :: forall encF. Lens' (ModelT encF) IndexVar Source #

modelStatus :: forall encF. Lens' (ModelT encF) Status Source #

modelSData :: forall encF. Lens' (ModelT encF) IxSData Source #

modelRoutePrism :: forall encF encF. Lens (ModelT encF) (ModelT encF) (encF (Prism' FilePath SiteRoute)) (encF (Prism' FilePath SiteRoute)) Source #

modelRels :: forall encF. Lens' (ModelT encF) IxRel Source #

modelNotes :: forall encF. Lens' (ModelT encF) IxNote Source #

modelNav :: forall encF. Lens' (ModelT encF) [Tree Slug] Source #

modelLayers :: forall encF. Lens' (ModelT encF) (Set Loc) Source #

modelInstanceID :: forall encF. Lens' (ModelT encF) UUID Source #

modelEmaCLIAction :: forall encF. Lens' (ModelT encF) (Some Action) Source #

modelCompileTailwind :: forall encF. Lens' (ModelT encF) Bool Source #

inLiveServer :: Model -> Bool Source #

Are we running in live server, or statically generated website?

dropRedundantAncestor :: LMLRoute -> IxNote -> IxNote Source #

If a placeholder route was added already, but the newly added note is a non-Markdown, removce that markdown placeholder route.

updateIxMulti :: (IsIndexOf ix ixs, Indexable ixs a) => ix -> IxSet ixs a -> IxSet ixs a -> IxSet ixs a Source #

Like updateIx, but works for multiple items.

deleteIxMulti :: (Indexable ixs a, IsIndexOf ix ixs) => ix -> IxSet ixs a -> IxSet ixs a Source #

Like deleteIx, but works for multiple items

modelTags :: ModelT f -> [(Tag, [Note])] Source #

modelIndexRoute :: ModelT f -> LMLRoute Source #

Return the most suitable index LML route

If index.org exist, use that. Otherwise, fallback to index.md.

resolveLmlRoute :: forall lmlType f. ModelT f -> R ('LMLType lmlType) -> LMLRoute Source #

resolveLmlRouteIfExists :: forall ext. IxNote -> R ext -> Maybe LMLRoute Source #

Lookup a LML route, returning the less popular LML format if there are ambiguities.