MFlow  Create and maintain dynamic Web applications as easy and fast as console applications
Thou shall not write request handlers
 This release: 11/06/2014.  agocorona@gmail.com (@agocorona) <>< . issues & bugs .  Mflow Source code,     source code of this site




Wiki Index

This is the list of pages so far:

  • About the growing trend of client side frameworks, see this
  • Composable caching: Now the programmer can express independently the caching policies for each widget.
  • Links are verified at compilation time... with the exception of the ones generated at run time 
  • How to create complex dynamic applications GUI-like: An example app that create, edit and test MFlow forms


This is the code of the wiki widget,  that render this page:

wiki =  page $ do
 pagname <- getRestParam `onNothing` return "index"
   (docTypeHtml $ El.head $ El.title << pagname)
        ++> (El.body
        <<< ( h1 ! At.style "text-align:center" <<< tFieldEd "editor" (wikip ++pagname ++ "title.html") (fromString pagname))
        **> tFieldEd "editor" (wikip ++ pagname ++ "body.html") "Enter the body"
        )

wikip="wiki/"

getRestParam read the next segment of the REST path. If no remaining segment, "index" is used.

tfieldEd is a widget that renders an HTML text that can be edited by the "editor" user. It present the static page defined in the second parameter.

The code uses blaze-html combinators and MFlow combinators.

There are two fields: the title of the page and the body of the page.  This content is in "wiki/indexbody.html"

comments powered by Disqus