-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A wiki implemented with a firm theoretical foundation. -- -- This project is a simple wiki developed based on a firm theoretical -- foundation. -- -- Documents are not stored directly, but as a composition tree of -- patches to an initial empty document. As our patches support -- operational transform, edits can be made to any version of each -- document and they are transformed to be applied to the latest version. -- -- This also makes it easy to use the group structure of patches to be -- able to revert changes (or the composition of several changes) from -- deep in a document's history and preserve every other change. -- -- Right now the wiki doesn't support many bells and whistles, such as -- administrator control, or user accounts, but they're coming. @package dixi @version 0.6 module Dixi.Hamlet hml :: QuasiQuoter module Dixi.Database.Orphans instance Data.Foldable.Foldable Data.Monoid.Last instance Data.Traversable.Traversable Data.Monoid.Last instance Data.Data.Data a => Data.Data.Data (Data.Monoid.Last a) instance Data.SafeCopy.SafeCopy.SafeCopy Data.Patch.Internal.HunkStatus instance Data.SafeCopy.SafeCopy.SafeCopy a0 => Data.SafeCopy.SafeCopy.SafeCopy (Data.Monoid.Last a0) instance Data.SafeCopy.SafeCopy.SafeCopy a0 => Data.SafeCopy.SafeCopy.SafeCopy (Data.Patch.Internal.Patch a0) instance Data.SafeCopy.SafeCopy.SafeCopy a0 => Data.SafeCopy.SafeCopy.SafeCopy (Data.Patch.Internal.Edit a0) instance Data.SafeCopy.SafeCopy.SafeCopy a0 => Data.SafeCopy.SafeCopy.SafeCopy (Data.Compositions.Snoc.Internal.Compositions a0) instance Data.SafeCopy.SafeCopy.SafeCopy a0 => Data.SafeCopy.SafeCopy.SafeCopy (Data.Compositions.Snoc.Internal.Flip a0) instance Data.SafeCopy.SafeCopy.SafeCopy a0 => Data.SafeCopy.SafeCopy.SafeCopy (Data.Compositions.Internal.Compositions a0) instance Data.SafeCopy.SafeCopy.SafeCopy a0 => Data.SafeCopy.SafeCopy.SafeCopy (Data.Compositions.Internal.Node a0) module Dixi.Pandoc.Wikilinks wikilinks :: String -> Pandoc -> IO Pandoc module Dixi.PatchUtils type PatchSummary = (Int, Int, Int) patchSummary :: Patch a -> PatchSummary patchToText :: Patch Char -> Text patchToVector :: Patch Char -> Vector Char module Dixi.Page data Page b Page :: b -> Last Text -> Last UTCTime -> Page b [_body] :: Page b -> b [_comment] :: Page b -> Last Text [_time] :: Page b -> Last UTCTime time :: Lens' (Page b_arPi) (Last UTCTime) comment :: Lens' (Page b_arPi) (Last Text) body :: Lens (Page b_arPi) (Page b_asWS) b_arPi b_asWS instance GHC.Base.Monoid b => GHC.Base.Monoid (Dixi.Page.Page b) instance Data.SafeCopy.SafeCopy.SafeCopy b0 => Data.SafeCopy.SafeCopy.SafeCopy (Dixi.Page.Page b0) instance Data.Traversable.Traversable Dixi.Page.Page instance Data.Foldable.Foldable Dixi.Page.Page instance GHC.Show.Show b => GHC.Show.Show (Dixi.Page.Page b) instance Data.Data.Data b => Data.Data.Data (Dixi.Page.Page b) instance GHC.Base.Functor Dixi.Page.Page module Dixi.Common type Key = Text type Version = Int data DixiError VersionNotFound :: Key -> Version -> DixiError PatchNotApplicable :: Key -> DixiError instance GHC.Show.Show Dixi.Common.DixiError module Dixi.Database data Database emptyDB :: Database data DixiError VersionNotFound :: Key -> Version -> DixiError PatchNotApplicable :: Key -> DixiError data Amend Amend :: Key -> Version -> Text -> Maybe Text -> UTCTime -> Amend data GetDiff GetDiff :: Key -> (Version, Version) -> GetDiff newtype GetHistory GetHistory :: Key -> GetHistory newtype GetLatest GetLatest :: Key -> GetLatest data GetVersion GetVersion :: Key -> Version -> GetVersion data Revert Revert :: Key -> (Version, Version) -> Maybe Text -> UTCTime -> Revert instance Data.Acid.Common.IsAcidic Dixi.Database.Database instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Database.GetLatest instance Data.Acid.Core.Method Dixi.Database.GetLatest instance Data.Acid.Common.QueryEvent Dixi.Database.GetLatest instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Database.GetVersion instance Data.Acid.Core.Method Dixi.Database.GetVersion instance Data.Acid.Common.QueryEvent Dixi.Database.GetVersion instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Database.GetHistory instance Data.Acid.Core.Method Dixi.Database.GetHistory instance Data.Acid.Common.QueryEvent Dixi.Database.GetHistory instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Database.GetDiff instance Data.Acid.Core.Method Dixi.Database.GetDiff instance Data.Acid.Common.QueryEvent Dixi.Database.GetDiff instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Database.Amend instance Data.Acid.Core.Method Dixi.Database.Amend instance Data.Acid.Common.UpdateEvent Dixi.Database.Amend instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Database.Revert instance Data.Acid.Core.Method Dixi.Database.Revert instance Data.Acid.Common.UpdateEvent Dixi.Database.Revert instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Common.DixiError instance Data.SafeCopy.SafeCopy.SafeCopy Dixi.Database.Database module Dixi.Config data Config Config :: Int -> FilePath -> Maybe FilePath -> FilePath -> TimeConfig -> Format -> String -> [String] -> MathMethod -> Config data Renders Renders :: (Last UTCTime -> String) -> PureReader -> WriterOptions -> EndoIO Pandoc -> Html -> Renders [renderTime] :: Renders -> Last UTCTime -> String [pandocReader] :: Renders -> PureReader [pandocWriterOptions] :: Renders -> WriterOptions [pandocProcessors] :: Renders -> EndoIO Pandoc [headerBlock] :: Renders -> Html defaultConfig :: Config configToRenders :: Config -> IO Renders defaultRenders :: Renders newtype EndoIO x EndoIO :: (x -> IO x) -> EndoIO x [runEndoIO] :: EndoIO x -> x -> IO x instance GHC.Generics.Selector Dixi.Config.S1_0_8Config instance GHC.Generics.Selector Dixi.Config.S1_0_7Config instance GHC.Generics.Selector Dixi.Config.S1_0_6Config instance GHC.Generics.Selector Dixi.Config.S1_0_5Config instance GHC.Generics.Selector Dixi.Config.S1_0_4Config instance GHC.Generics.Selector Dixi.Config.S1_0_3Config instance GHC.Generics.Selector Dixi.Config.S1_0_2Config instance GHC.Generics.Selector Dixi.Config.S1_0_1Config instance GHC.Generics.Selector Dixi.Config.S1_0_0Config instance GHC.Generics.Constructor Dixi.Config.C1_0Config instance GHC.Generics.Datatype Dixi.Config.D1Config instance GHC.Generics.Constructor Dixi.Config.C1_4MathMethod instance GHC.Generics.Constructor Dixi.Config.C1_3MathMethod instance GHC.Generics.Constructor Dixi.Config.C1_2MathMethod instance GHC.Generics.Constructor Dixi.Config.C1_1MathMethod instance GHC.Generics.Constructor Dixi.Config.C1_0MathMethod instance GHC.Generics.Datatype Dixi.Config.D1MathMethod instance GHC.Generics.Selector Dixi.Config.S1_0_1TimeConfig instance GHC.Generics.Selector Dixi.Config.S1_0_0TimeConfig instance GHC.Generics.Constructor Dixi.Config.C1_0TimeConfig instance GHC.Generics.Datatype Dixi.Config.D1TimeConfig instance GHC.Generics.Constructor Dixi.Config.C1_0Format instance GHC.Generics.Datatype Dixi.Config.D1Format instance GHC.Show.Show Dixi.Config.Config instance GHC.Generics.Generic Dixi.Config.Config instance GHC.Show.Show Dixi.Config.MathMethod instance GHC.Generics.Generic Dixi.Config.MathMethod instance GHC.Show.Show Dixi.Config.TimeConfig instance GHC.Generics.Generic Dixi.Config.TimeConfig instance GHC.Show.Show Dixi.Config.Format instance GHC.Generics.Generic Dixi.Config.Format instance Data.Aeson.Types.Class.FromJSON Dixi.Config.Config instance Data.Aeson.Types.Class.ToJSON Dixi.Config.Config instance Data.Aeson.Types.Class.FromJSON Dixi.Config.TimeConfig instance Data.Aeson.Types.Class.ToJSON Dixi.Config.TimeConfig instance Data.Aeson.Types.Class.FromJSON Dixi.Config.Format instance Data.Aeson.Types.Class.ToJSON Dixi.Config.Format instance Data.Aeson.Types.Class.FromJSON Dixi.Config.MathMethod instance Data.Aeson.Types.Class.ToJSON Dixi.Config.MathMethod instance GHC.Base.Monoid (Dixi.Config.EndoIO a) module Dixi.API type (:|) a b = a :<|> b (|:) :: a -> b -> a :| b data PrettyPage PP :: Renders -> Key -> Version -> (Page Html) -> PrettyPage data RawPage RP :: Renders -> Key -> Version -> (Page Text) -> RawPage data DiffPage DP :: Renders -> Key -> Version -> Version -> (Page (Hunks Char)) -> DiffPage data History H :: Renders -> Key -> [Page PatchSummary] -> History data NewBody NB :: Text -> (Maybe Text) -> NewBody data RevReq DR :: Version -> Version -> (Maybe Text) -> RevReq type HistoryAPI = Get '[HTML, JSON] History :| ((Capture "version" Version :> VersionAPI) :| (("diff" :> (QueryParam "from" Version :> (QueryParam "to" Version :> Get '[HTML, JSON] DiffPage))) :| ("revert" :> (ReqBody '[FormUrlEncoded, JSON] RevReq :> Post '[HTML, JSON] PrettyPage)))) type VersionAPI = PageViewAPI :| (ReqBody '[FormUrlEncoded, JSON] NewBody :> Post '[HTML, JSON] PrettyPage) type PageAPI = PageViewAPI :| ("history" :> HistoryAPI) type PageViewAPI = Get '[HTML, JSON] PrettyPage :| ("raw" :> Get '[HTML, JSON] RawPage) type Dixi = (Capture "page" Key :> PageAPI) :| PageAPI dixi :: Proxy Dixi instance Data.Aeson.Types.Class.FromJSON Dixi.API.RevReq instance Data.Aeson.Types.Class.ToJSON Dixi.API.RevReq instance Data.Aeson.Types.Class.FromJSON Dixi.API.NewBody instance Data.Aeson.Types.Class.ToJSON Dixi.API.NewBody instance Data.Aeson.Types.Class.ToJSON Dixi.API.DiffPage instance Data.Aeson.Types.Class.ToJSON Dixi.API.RawPage instance Data.Aeson.Types.Class.ToJSON Dixi.API.PrettyPage instance Data.Aeson.Types.Class.ToJSON Dixi.API.History module Dixi.Forms instance Servant.API.ContentTypes.FromFormUrlEncoded Dixi.API.NewBody instance Servant.API.ContentTypes.ToFormUrlEncoded Dixi.API.NewBody instance Servant.API.ContentTypes.ToFormUrlEncoded Dixi.API.RevReq instance Servant.API.ContentTypes.FromFormUrlEncoded Dixi.API.RevReq module Dixi.Markup link :: (IsElem endpoint Dixi, HasLink endpoint) => Proxy endpoint -> MkLink endpoint renderTitle :: Text -> Text prettyUrl :: Proxy (Capture "page" Key :> ("history" :> (Capture "version" Version :> Get '[HTML, JSON] PrettyPage))) latestUrl :: Proxy (Capture "page" Key :> Get '[HTML, JSON] PrettyPage) rawUrl :: Proxy (Capture "page" Key :> ("history" :> (Capture "version" Version :> ("raw" :> Get '[HTML, JSON] RawPage)))) amendUrl :: Proxy (Capture "page" Key :> ("history" :> (Capture "version" Version :> (ReqBody '[FormUrlEncoded, JSON] NewBody :> Post '[HTML, JSON] PrettyPage)))) diffUrl :: Proxy (Capture "page" Key :> ("history" :> ("diff" :> Get '[HTML, JSON] DiffPage))) historyUrl :: Proxy (Capture "page" Key :> ("history" :> Get '[HTML, JSON] History)) revertUrl :: Proxy (Capture "page" Key :> ("history" :> ("revert" :> (ReqBody '[FormUrlEncoded, JSON] RevReq :> Post '[HTML, JSON] PrettyPage)))) outerMatter :: Html -> Text -> Html -> Html unlast :: a -> Last a -> a guardText :: Text -> Text -> Text dixiError :: Html -> DixiError -> ByteString versionHeader :: Key -> Version -> Text -> Html pageHeader :: Key -> Text -> Html writePandocError :: PandocError -> Html defaultStylesheet :: Text instance Text.Blaze.ToMarkup Network.URI.URI instance Text.Blaze.ToMarkup Dixi.PatchUtils.PatchSummary instance Text.Blaze.ToMarkup Dixi.API.DiffPage instance Text.Blaze.ToMarkup Dixi.API.History instance Text.Blaze.ToMarkup Text.Pandoc.Error.PandocError instance Text.Blaze.ToMarkup Dixi.API.PrettyPage instance Text.Blaze.ToMarkup Dixi.API.RawPage module Dixi.Server spacesToUScores :: Text -> Text page :: AcidState Database -> Renders -> Key -> Server PageAPI server :: AcidState Database -> Renders -> Server Dixi