packages feed

scotty-blaze (empty) → 0.1.3

raw patch · 22 files changed

+1067/−0 lines, 22 filesdep +basedep +blaze-builderdep +blaze-htmlsetup-changedbinary-added

Dependencies added: base, blaze-builder, blaze-html, mtl, scotty, wai

Files

+ LICENSE view
@@ -0,0 +1,21 @@+The MIT License (MIT)++Copyright (c) 2013 William Casarin++Permission is hereby granted, free of charge, to any person obtaining a copy+of this software and associated documentation files (the "Software"), to deal+in the Software without restriction, including without limitation the rights+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+copies of the Software, and to permit persons to whom the Software is+furnished to do so, subject to the following conditions:++The above copyright notice and this permission notice shall be included in+all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+THE SOFTWARE.
+ Readme.md view
@@ -0,0 +1,43 @@++# Web.Scotty.Blaze++blaze-html integration for scotty++## Exports++```haskell+blaze :: Html -> ActionM ()++builder :: Builder -> ActionM ()+```++## Example++```haskell+{-# LANGUAGE OverloadedStrings #-}++import           Web.Scotty+import           Web.Scotty.Blaze+import           Network.Wai.Middleware.RequestLogger+import           Text.Blaze.Html (Html)+import qualified Text.Blaze.Html5 as H+import qualified Data.Text as T+import           Data.Monoid ((<>))++helloHtml :: T.Text -> Html+helloHtml n =+  H.html $ do+    H.head $ do+      H.title greet+    H.body $ do+      H.p greet+  where+    greet = H.toHtml $ "Hello, " <> n++main :: IO ()+main = scotty 3000 $ do+  middleware logStdoutDev+  get "/:name" $ do+    n <- param "name"+    blaze $ helloHtml (T.pack n)+```
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ dist/doc/html/scotty-blaze/._hslogo-16.png view

binary file changed (absent → 317 bytes)

+ dist/doc/html/scotty-blaze/._minus.gif view

binary file changed (absent → 316 bytes)

+ dist/doc/html/scotty-blaze/._plus.gif view

binary file changed (absent → 316 bytes)

+ dist/doc/html/scotty-blaze/._synopsis.png view

binary file changed (absent → 315 bytes)

+ dist/doc/html/scotty-blaze/Web-Scotty-Blaze.html view
@@ -0,0 +1,6 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Web.Scotty.Blaze</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();setSynopsis("mini_Web-Scotty-Blaze.html");};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">scotty-blaze-0.1.3: blaze-html integration for scotty</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Web.Scotty.Blaze</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:blaze">blaze</a> :: Html -&gt; ActionM ()</li><li class="src short"><a href="#v:builder">builder</a> :: Builder -&gt; ActionM ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:blaze" class="def">blaze</a> :: Html -&gt; ActionM ()</p><div class="doc"><p>Render some Blaze Html+</p></div></div><div class="top"><p class="src"><a name="v:builder" class="def">builder</a> :: Builder -&gt; ActionM ()</p><div class="doc"><p>Render a generic builder+</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2.1</p></div></body></html>
+ dist/doc/html/scotty-blaze/doc-index.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>scotty-blaze-0.1.3: blaze-html integration for scotty (Index)</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">scotty-blaze-0.1.3: blaze-html integration for scotty</p></div><div id="content"><div id="index"><p class="caption">Index</p><table><tr><td class="src">blaze</td><td class="module"><a href="Web-Scotty-Blaze.html#v:blaze">Web.Scotty.Blaze</a></td></tr><tr><td class="src">builder</td><td class="module"><a href="Web-Scotty-Blaze.html#v:builder">Web.Scotty.Blaze</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2.1</p></div></body></html>
+ dist/doc/html/scotty-blaze/frames.html view
@@ -0,0 +1,30 @@+<!DOCTYPE html +     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+<title></title>+<script src="haddock-util.js" type="text/javascript"></script>+<script type="text/javascript"><!--+/*++  The synopsis frame needs to be updated using javascript, so we hide+  it by default and only show it if javascript is enabled.++  TODO: provide some means to disable it.+*/+function load() {+  var d = document.getElementById("inner-fs");+  d.rows = "50%,50%";+  postReframe();+}+--></script>+</head>+<frameset id="outer-fs" cols="25%,75%" onload="load()">+  <frameset id="inner-fs" rows="100%,0%">+    <frame src="index-frames.html" name="modules" />+    <frame src="" name="synopsis" />+  </frameset>+  <frame src="index.html" name="main" />+</frameset>+</html>
+ dist/doc/html/scotty-blaze/haddock-util.js view
@@ -0,0 +1,344 @@+// Haddock JavaScript utilities++var rspace = /\s\s+/g,+	  rtrim = /^\s+|\s+$/g;++function spaced(s) { return (" " + s + " ").replace(rspace, " "); }+function trim(s)   { return s.replace(rtrim, ""); }++function hasClass(elem, value) {+  var className = spaced(elem.className || "");+  return className.indexOf( " " + value + " " ) >= 0;+}++function addClass(elem, value) {+  var className = spaced(elem.className || "");+  if ( className.indexOf( " " + value + " " ) < 0 ) {+    elem.className = trim(className + " " + value);+  }+}++function removeClass(elem, value) {+  var className = spaced(elem.className || "");+  className = className.replace(" " + value + " ", " ");+  elem.className = trim(className);+}++function toggleClass(elem, valueOn, valueOff, bool) {+  if (bool == null) { bool = ! hasClass(elem, valueOn); }+  if (bool) {+    removeClass(elem, valueOff);+    addClass(elem, valueOn);+  }+  else {+    removeClass(elem, valueOn);+    addClass(elem, valueOff);+  }+  return bool;+}+++function makeClassToggle(valueOn, valueOff)+{+  return function(elem, bool) {+    return toggleClass(elem, valueOn, valueOff, bool);+  }+}++toggleShow = makeClassToggle("show", "hide");+toggleCollapser = makeClassToggle("collapser", "expander");++function toggleSection(id)+{+  var b = toggleShow(document.getElementById("section." + id));+  toggleCollapser(document.getElementById("control." + id), b);+  rememberCollapsed(id, b);+  return b;+}++var collapsed = {};+function rememberCollapsed(id, b)+{+  if(b)+    delete collapsed[id]+  else+    collapsed[id] = null;++  var sections = [];+  for(var i in collapsed)+  {+    if(collapsed.hasOwnProperty(i))+      sections.push(i);+  }+  // cookie specific to this page; don't use setCookie which sets path=/+  document.cookie = "collapsed=" + escape(sections.join('+'));+}++function restoreCollapsed()+{+  var cookie = getCookie("collapsed");+  if(!cookie)+    return;++  var ids = cookie.split('+');+  for(var i in ids)+  {+    if(document.getElementById("section." + ids[i]))+      toggleSection(ids[i]);+  }+}++function setCookie(name, value) {+  document.cookie = name + "=" + escape(value) + ";path=/;";+}++function clearCookie(name) {+  document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;";+}++function getCookie(name) {+  var nameEQ = name + "=";+  var ca = document.cookie.split(';');+  for(var i=0;i < ca.length;i++) {+    var c = ca[i];+    while (c.charAt(0)==' ') c = c.substring(1,c.length);+    if (c.indexOf(nameEQ) == 0) {+      return unescape(c.substring(nameEQ.length,c.length));+    }+  }+  return null;+}++++var max_results = 75; // 50 is not enough to search for map in the base libraries+var shown_range = null;+var last_search = null;++function quick_search()+{+    perform_search(false);+}++function full_search()+{+    perform_search(true);+}+++function perform_search(full)+{+    var text = document.getElementById("searchbox").value.toLowerCase();+    if (text == last_search && !full) return;+    last_search = text;+    +    var table = document.getElementById("indexlist");+    var status = document.getElementById("searchmsg");+    var children = table.firstChild.childNodes;+    +    // first figure out the first node with the prefix+    var first = bisect(-1);+    var last = (first == -1 ? -1 : bisect(1));++    if (first == -1)+    {+        table.className = "";+        status.innerHTML = "No results found, displaying all";+    }+    else if (first == 0 && last == children.length - 1)+    {+        table.className = "";+        status.innerHTML = "";+    }+    else if (last - first >= max_results && !full)+    {+        table.className = "";+        status.innerHTML = "More than " + max_results + ", press Search to display";+    }+    else+    {+        // decide what you need to clear/show+        if (shown_range)+            setclass(shown_range[0], shown_range[1], "indexrow");+        setclass(first, last, "indexshow");+        shown_range = [first, last];+        table.className = "indexsearch";+        status.innerHTML = "";+    }++    +    function setclass(first, last, status)+    {+        for (var i = first; i <= last; i++)+        {+            children[i].className = status;+        }+    }+    +    +    // do a binary search, treating 0 as ...+    // return either -1 (no 0's found) or location of most far match+    function bisect(dir)+    {+        var first = 0, finish = children.length - 1;+        var mid, success = false;++        while (finish - first > 3)+        {+            mid = Math.floor((finish + first) / 2);++            var i = checkitem(mid);+            if (i == 0) i = dir;+            if (i == -1)+                finish = mid;+            else+                first = mid;+        }+        var a = (dir == 1 ? first : finish);+        var b = (dir == 1 ? finish : first);+        for (var i = b; i != a - dir; i -= dir)+        {+            if (checkitem(i) == 0) return i;+        }+        return -1;+    }    +    +    +    // from an index, decide what the result is+    // 0 = match, -1 is lower, 1 is higher+    function checkitem(i)+    {+        var s = getitem(i).toLowerCase().substr(0, text.length);+        if (s == text) return 0;+        else return (s > text ? -1 : 1);+    }+    +    +    // from an index, get its string+    // this abstracts over alternates+    function getitem(i)+    {+        for ( ; i >= 0; i--)+        {+            var s = children[i].firstChild.firstChild.data;+            if (s.indexOf(' ') == -1)+                return s;+        }+        return ""; // should never be reached+    }+}++function setSynopsis(filename) {+    if (parent.window.synopsis) {+        if (parent.window.synopsis.location.replace) {+            // In Firefox this avoids adding the change to the history.+            parent.window.synopsis.location.replace(filename);+        } else {+            parent.window.synopsis.location = filename;+        }+    }+}++function addMenuItem(html) {+  var menu = document.getElementById("page-menu");+  if (menu) {+    var btn = menu.firstChild.cloneNode(false);+    btn.innerHTML = html;+    menu.appendChild(btn);+  }+}++function adjustForFrames() {+  var bodyCls;+  +  if (parent.location.href == window.location.href) {+    // not in frames, so add Frames button+    addMenuItem("<a href='#' onclick='reframe();return true;'>Frames</a>");+    bodyCls = "no-frame";+  }+  else {+    bodyCls = "in-frame";+  }+  addClass(document.body, bodyCls);+}++function reframe() {+  setCookie("haddock-reframe", document.URL);+  window.location = "frames.html";+}++function postReframe() {+  var s = getCookie("haddock-reframe");+  if (s) {+    parent.window.main.location = s;+    clearCookie("haddock-reframe");+  }+}++function styles() {+  var i, a, es = document.getElementsByTagName("link"), rs = [];+  for (i = 0; a = es[i]; i++) {+    if(a.rel.indexOf("style") != -1 && a.title) {+      rs.push(a);+    }+  }+  return rs;+}++function addStyleMenu() {+  var as = styles();+  var i, a, btns = "";+  for(i=0; a = as[i]; i++) {+    btns += "<li><a href='#' onclick=\"setActiveStyleSheet('"+      + a.title + "'); return false;\">"+      + a.title + "</a></li>"+  }+  if (as.length > 1) {+    var h = "<div id='style-menu-holder'>"+      + "<a href='#' onclick='styleMenu(); return false;'>Style &#9662;</a>"+      + "<ul id='style-menu' class='hide'>" + btns + "</ul>"+      + "</div>";+    addMenuItem(h);+  }+}++function setActiveStyleSheet(title) {+  var as = styles();+  var i, a, found;+  for(i=0; a = as[i]; i++) {+    a.disabled = true;+          // need to do this always, some browsers are edge triggered+    if(a.title == title) {+      found = a;+    }+  }+  if (found) {+    found.disabled = false;+    setCookie("haddock-style", title);+  }+  else {+    as[0].disabled = false;+    clearCookie("haddock-style");+  }+  styleMenu(false);+}++function resetStyle() {+  var s = getCookie("haddock-style");+  if (s) setActiveStyleSheet(s);+}+++function styleMenu(show) {+  var m = document.getElementById('style-menu');+  if (m) toggleShow(m, show);+}+++function pageLoad() {+  addStyleMenu();+  adjustForFrames();+  resetStyle();+  restoreCollapsed();+}+
+ dist/doc/html/scotty-blaze/hslogo-16.png view

binary file changed (absent → 1684 bytes)

+ dist/doc/html/scotty-blaze/index-frames.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>scotty-blaze-0.1.3: blaze-html integration for scotty</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body id="mini"><div id="module-list"><p class="caption">Modules</p><ul><li class="module"><a href="Web-Scotty-Blaze.html" target="main">Web.Scotty.Blaze</a></li></ul></div></body></html>
+ dist/doc/html/scotty-blaze/index.html view
@@ -0,0 +1,5 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>scotty-blaze-0.1.3: blaze-html integration for scotty</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">scotty-blaze-0.1.3: blaze-html integration for scotty</p></div><div id="content"><div id="description"><h1>scotty-blaze-0.1.3: blaze-html integration for scotty</h1><div class="doc"><p>blaze-html integration for scotty+</p></div></div><div id="module-list"><p class="caption">Modules</p><ul><li><span id="control.n.1" class="module collapser" onclick="toggleSection('n.1')">Web</span><ul id="section.n.1" class="show"><li><span id="control.n.1.1" class="module collapser" onclick="toggleSection('n.1.1')">Scotty</span><ul id="section.n.1.1" class="show"><li><span class="module"><a href="Web-Scotty-Blaze.html">Web.Scotty.Blaze</a></span></li></ul></li></ul></li></ul></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2.1</p></div></body></html>
+ dist/doc/html/scotty-blaze/mini_Web-Scotty-Blaze.html view
@@ -0,0 +1,4 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Web.Scotty.Blaze</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[+window.onload = function () {pageLoad();};+//]]>+</script></head><body id="mini"><div id="module-header"><p class="caption">Web.Scotty.Blaze</p></div><div id="interface"><div class="top"><p class="src"><a href="Web-Scotty-Blaze.html#v:blaze" target="main">blaze</a></p></div><div class="top"><p class="src"><a href="Web-Scotty-Blaze.html#v:builder" target="main">builder</a></p></div></div></body></html>
+ dist/doc/html/scotty-blaze/minus.gif view

binary file changed (absent → 56 bytes)

+ dist/doc/html/scotty-blaze/ocean.css view
@@ -0,0 +1,546 @@+/* @group Fundamentals */++* { margin: 0; padding: 0 }++/* Is this portable? */+html {+  background-color: white;+  width: 100%;+  height: 100%;+}++body {+  background: white;+  color: black;+  text-align: left;+  min-height: 100%;+  position: relative;+}++p {+  margin: 0.8em 0;+}++ul, ol {+  margin: 0.8em 0 0.8em 2em;+}++dl {+  margin: 0.8em 0;+}++dt {+  font-weight: bold;+}+dd {+  margin-left: 2em;+}++a { text-decoration: none; }+a[href]:link { color: rgb(196,69,29); }+a[href]:visited { color: rgb(171,105,84); }+a[href]:hover { text-decoration:underline; }++/* @end */++/* @group Fonts & Sizes */++/* Basic technique & IE workarounds from YUI 3+   For reasons, see:+      http://yui.yahooapis.com/3.1.1/build/cssfonts/fonts.css+ */+ +body {+	font:13px/1.4 sans-serif;+	*font-size:small; /* for IE */+	*font:x-small; /* for IE in quirks mode */+}++h1 { font-size: 146.5%; /* 19pt */ } +h2 { font-size: 131%;   /* 17pt */ }+h3 { font-size: 116%;   /* 15pt */ }+h4 { font-size: 100%;   /* 13pt */ }+h5 { font-size: 100%;   /* 13pt */ }++select, input, button, textarea {+	font:99% sans-serif;+}++table {+	font-size:inherit;+	font:100%;+}++pre, code, kbd, samp, tt, .src {+	font-family:monospace;+	*font-size:108%;+	line-height: 124%;+}++.links, .link {+  font-size: 85%; /* 11pt */+}++#module-header .caption {+  font-size: 182%; /* 24pt */+}++.info  {+  font-size: 85%; /* 11pt */+}++#table-of-contents, #synopsis  {+  /* font-size: 85%; /* 11pt */+}+++/* @end */++/* @group Common */++.caption, h1, h2, h3, h4, h5, h6 { +  font-weight: bold;+  color: rgb(78,98,114);+  margin: 0.8em 0 0.4em;+}++* + h1, * + h2, * + h3, * + h4, * + h5, * + h6 {+  margin-top: 2em;+}++h1 + h2, h2 + h3, h3 + h4, h4 + h5, h5 + h6 {+  margin-top: inherit;+}++ul.links {+  list-style: none;+  text-align: left;+  float: right;+  display: inline-table;+  margin: 0 0 0 1em;+}++ul.links li {+  display: inline;+  border-left: 1px solid #d5d5d5; +  white-space: nowrap;+  padding: 0;+}++ul.links li a {+  padding: 0.2em 0.5em;+}++.hide { display: none; }+.show { display: inherit; }+.clear { clear: both; }++.collapser {+  background-image: url(minus.gif);+  background-repeat: no-repeat;+}+.expander {+  background-image: url(plus.gif);+  background-repeat: no-repeat;+}+p.caption.collapser,+p.caption.expander {+  background-position: 0 0.4em;+}+.collapser, .expander {+  padding-left: 14px;+  margin-left: -14px;+  cursor: pointer;+}++pre {+  padding: 0.25em;+  margin: 0.8em 0;+  background: rgb(229,237,244);+  overflow: auto;+  border-bottom: 0.25em solid white;+  /* white border adds some space below the box to compensate+     for visual extra space that paragraphs have between baseline+     and the bounding box */+}++.src {+  background: #f0f0f0;+  padding: 0.2em 0.5em;+}++.keyword { font-weight: normal; }+.def { font-weight: bold; }+++/* @end */++/* @group Page Structure */++#content {+  margin: 0 auto;+  padding: 0 2em 6em;+}++#package-header {+  background: rgb(41,56,69);+  border-top: 5px solid rgb(78,98,114);+  color: #ddd;+  padding: 0.2em;+  position: relative;+  text-align: left;+}++#package-header .caption {+  background: url(hslogo-16.png) no-repeat 0em;+  color: white;+  margin: 0 2em;+  font-weight: normal;+  font-style: normal;+  padding-left: 2em;+}++#package-header a:link, #package-header a:visited { color: white; }+#package-header a:hover { background: rgb(78,98,114); }++#module-header .caption {+  color: rgb(78,98,114);+  font-weight: bold;+  border-bottom: 1px solid #ddd;+}++table.info {+  float: right;+  padding: 0.5em 1em;+  border: 1px solid #ddd;+  color: rgb(78,98,114);+  background-color: #fff;+  max-width: 40%;+  border-spacing: 0;+  position: relative;+  top: -0.5em;+  margin: 0 0 0 2em;+}++.info th {+	padding: 0 1em 0 0;+}++div#style-menu-holder {+  position: relative;+  z-index: 2;+  display: inline;+}++#style-menu {+  position: absolute;+  z-index: 1;+  overflow: visible;+  background: #374c5e;+  margin: 0;+  text-align: center;+  right: 0;+  padding: 0;+  top: 1.25em;+}++#style-menu li {+	display: list-item;+	border-style: none;+	margin: 0;+	padding: 0;+	color: #000;+	list-style-type: none;+}++#style-menu li + li {+	border-top: 1px solid #919191;+}++#style-menu a {+  width: 6em;+  padding: 3px;+  display: block;+}++#footer {+  background: #ddd;+  border-top: 1px solid #aaa;+  padding: 0.5em 0;+  color: #666;+  text-align: center;+  position: absolute;+  bottom: 0;+  width: 100%;+  height: 3em;+}++/* @end */++/* @group Front Matter */++#table-of-contents {+  float: right;+  clear: right;+  background: #faf9dc;+  border: 1px solid #d8d7ad;+  padding: 0.5em 1em;+  max-width: 20em;+  margin: 0.5em 0 1em 1em;+}++#table-of-contents .caption {+  text-align: center;+  margin: 0;+}++#table-of-contents ul {+  list-style: none;+  margin: 0;+}++#table-of-contents ul ul {+  margin-left: 2em;+}++#description .caption {+  display: none;+}++#synopsis {+  display: none;+}++.no-frame #synopsis {+  display: block;+  position: fixed;+  right: 0;+  height: 80%;+  top: 10%;+  padding: 0;+}++#synopsis .caption {+  float: left;+  width: 29px;+  color: rgba(255,255,255,0);+  height: 110px;+  margin: 0;+  font-size: 1px;+  padding: 0;+}++#synopsis p.caption.collapser {+  background: url(synopsis.png) no-repeat -64px -8px;+}++#synopsis p.caption.expander {+  background: url(synopsis.png) no-repeat 0px -8px;+}++#synopsis ul {+  height: 100%;+  overflow: auto;+  padding: 0.5em;+  margin: 0;+}++#synopsis ul ul {+  overflow: hidden;+}++#synopsis ul,+#synopsis ul li.src {+  background-color: #faf9dc;+  white-space: nowrap;+  list-style: none;+  margin-left: 0;+}++/* @end */++/* @group Main Content */++#interface div.top { margin: 2em 0; }+#interface h1 + div.top,+#interface h2 + div.top,+#interface h3 + div.top,+#interface h4 + div.top,+#interface h5 + div.top {+ 	margin-top: 1em;+}+#interface p.src .link {+  float: right;+  color: #919191;+  border-left: 1px solid #919191;+  background: #f0f0f0;+  padding: 0 0.5em 0.2em;+  margin: 0 -0.5em 0 0.5em;+}++#interface table { border-spacing: 2px; }+#interface td {+  vertical-align: top;+  padding-left: 0.5em;+}+#interface td.src {+  white-space: nowrap;+}+#interface td.doc p {+  margin: 0;+}+#interface td.doc p + p {+  margin-top: 0.8em;+}++.subs dl {+  margin: 0;+}++.subs dt {+  float: left;+  clear: left;+  display: block;+  margin: 1px 0;+}++.subs dd {+  float: right;+  width: 90%;+  display: block;+  padding-left: 0.5em;+  margin-bottom: 0.5em;+}++.subs dd.empty {+  display: none;+}++.subs dd p {+  margin: 0;+}++.top p.src {+  border-top: 1px solid #ccc;+}++.subs, .doc {+  /* use this selector for one level of indent */+  padding-left: 2em;+}++.warning {+  color: red;+}++.arguments {+  margin-top: -0.4em;+}+.arguments .caption {+  display: none;+}++.fields { padding-left: 1em; }++.fields .caption { display: none; }++.fields p { margin: 0 0; }++/* this seems bulky to me+.methods, .constructors {+  background: #f8f8f8;+  border: 1px solid #eee;+}+*/++/* @end */++/* @group Auxillary Pages */++#mini {+  margin: 0 auto;+  padding: 0 1em 1em;+}++#mini > * {+  font-size: 93%; /* 12pt */  +}++#mini #module-list .caption,+#mini #module-header .caption {+  font-size: 125%; /* 15pt */+}++#mini #interface h1,+#mini #interface h2,+#mini #interface h3,+#mini #interface h4 {+  font-size: 109%; /* 13pt */+  margin: 1em 0 0;+}++#mini #interface .top,+#mini #interface .src {+  margin: 0;+}++#mini #module-list ul {+  list-style: none;+  margin: 0;+}++#alphabet ul {+	list-style: none;+	padding: 0;+	margin: 0.5em 0 0;+	text-align: center;+}++#alphabet li {+	display: inline;+	margin: 0 0.25em;+}++#alphabet a {+	font-weight: bold;+}++#index .caption,+#module-list .caption { font-size: 131%; /* 17pt */ }++#index table {+  margin-left: 2em;+}++#index .src {+  font-weight: bold;+}+#index .alt {+  font-size: 77%; /* 10pt */+  font-style: italic;+  padding-left: 2em;+}++#index td + td {+  padding-left: 1em;+}++#module-list ul {+  list-style: none;+  margin: 0 0 0 2em;+}++#module-list li {+  clear: right;+}++#module-list span.collapser,+#module-list span.expander {+  background-position: 0 0.3em;+}++#module-list .package {+  float: right;+}++/* @end */
+ dist/doc/html/scotty-blaze/plus.gif view

binary file changed (absent → 59 bytes)

+ dist/doc/html/scotty-blaze/scotty-blaze.haddock view

binary file changed (absent → 479 bytes)

+ dist/doc/html/scotty-blaze/synopsis.png view

binary file changed (absent → 11327 bytes)

+ scotty-blaze.cabal view
@@ -0,0 +1,28 @@+name:                scotty-blaze+version:             0.1.3+description:         blaze-html integration for Scotty+synopsis:            blaze-html integration for Scotty++license:             MIT+license-file:        LICENSE+author:              William Casarin+maintainer:          will@casarin.me++category:            Web+build-type:          Simple+cabal-version:       >= 1.6++source-repository head+  type:     git+  location: https://github.com/jb55/scotty-blaze.git++Library+  hs-source-dirs: src+  exposed-modules: Web.Scotty.Blaze++  Build-depends: base          >= 4 && < 5+               , blaze-html    >= 0.5+               , blaze-builder >= 0.3+               , scotty        >= 0.4+               , wai           >= 1.2+               , mtl           >= 2
+ src/Web/Scotty/Blaze.hs view
@@ -0,0 +1,30 @@+{-# LANGUAGE OverloadedStrings #-}++module Web.Scotty.Blaze (+  blaze+, builder+) where++import           Network.Wai+import           Web.Scotty (ActionM, header)+import qualified Control.Monad.State as MS+import           Text.Blaze.Html (Html)+import           Blaze.ByteString.Builder (Builder)+import           Text.Blaze.Html.Renderer.Utf8 (renderHtmlBuilder)++-- | Render some Blaze Html+--+blaze :: Html -> ActionM ()+blaze h = do+  header "Content-Type" "text/html"+  builder $ renderHtmlBuilder h++-- | Render a generic builder+--+builder :: Builder -> ActionM ()+builder = MS.modify . setContent++setContent :: Builder -> Response -> Response+setContent b (ResponseBuilder s h _) = ResponseBuilder s h b+setContent b (ResponseFile s h _ _)  = ResponseBuilder s h b+setContent b (ResponseSource s h _)  = ResponseBuilder s h b