packages feed

yst 0.4.1.1 → 0.5

raw patch · 11 files changed

+129/−137 lines, 11 filesdep +luciddep −xhtmldep ~HStringTemplate

Dependencies added: lucid

Dependencies removed: xhtml

Dependency ranges changed: HStringTemplate

Files

Yst/Data.hs view
@@ -30,23 +30,22 @@ import Data.List (sortBy, nub, isPrefixOf) import Text.ParserCombinators.Parsec import System.FilePath (takeExtension)-import Prelude hiding (catch)-import Control.Exception (catch, SomeException)+import qualified Control.Exception as E  findData :: Site -> FilePath -> IO FilePath findData = searchPath . dataDir  getData :: Site -> DataSpec -> IO Node getData site (DataFromFile file opts) = do-  raw <- catch (findData site file >>= readDataFile)-               (\(e::SomeException) -> do+  raw <- E.catch (findData site file >>= readDataFile)+               (\(e::E.SomeException) -> do                   errorExit 15 ("Error reading data from " ++ file ++ ": "                      ++ show e)                   return undefined)   return $ foldl applyDataOption raw opts getData site (DataFromSqlite3 database query opts) = do-  raw <- catch (findData site database >>= \d -> readSqlite3 d query)-               (\(e::SomeException) -> do+  raw <- E.catch (findData site database >>= \d -> readSqlite3 d query)+               (\(e::E.SomeException) -> do                   errorExit 15 ("Error reading Sqlite3 database from " ++                     database ++ ": " ++ show e)                   return undefined)
Yst/Render.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-} {- Copyright (C) 2009 John MacFarlane <jgm@berkeley.edu> @@ -23,11 +24,13 @@ import Yst.Data import System.Directory import Text.Pandoc hiding (Format)-import Text.XHtml hiding (option, (</>))+import Lucid import Data.Char import Data.List (intercalate) import Data.List.Split (wordsBy) import Text.StringTemplate+import Data.Text.Lazy (unpack)+import Data.Text (pack) import Data.Maybe (fromMaybe) import System.FilePath -- Note: ghc >= 6.12 (base >=4.2) supports unicode through iconv@@ -65,22 +68,20 @@ dropCommon xs ys = (xs,ys)  renderNav :: String -> [NavNode] -> String-renderNav targeturl nodes = renderHtmlFragment $-  ulist ! [theclass "nav"] << map (renderNavNode targeturl) nodes+renderNav targeturl nodes = unpack $ renderText $+  ul_ [class_ "nav"] $ mapM_ (renderNavNode targeturl) nodes -renderNavNode :: String -> NavNode -> Html+renderNavNode :: String -> NavNode -> Html () renderNavNode targeturl (NavPage tit pageurl) =-  li ! attrs << hotlink pageurl' << tit+  li_ [class_ "current" | pageurl == targeturl] (a_ [href_ pageurl'] (toHtml tit))     where targetdir = takeUrlDir targeturl-          pageurl' = relUrl targetdir pageurl-          attrs = if pageurl == targeturl-                     then [theclass "current"]-                     else []+          pageurl' = pack $ relUrl targetdir pageurl renderNavNode targeturl (NavMenu tit nodes) =-  li ! attrs << [ toHtml $ hotlink "#" << (tit ++ " »")-                , ulist ! attrs << map (renderNavNode targeturl) nodes ]+  li_ [class_ "dropdown dropdown-submenu"] $+    do a_ [href_ "#", class_ "dropdown-toggle", data_ "toggle" "dropdown"]+             (toHtml (tit ++ " »"))+       ul_ [class_ "dropdown-menu"] (mapM_ (renderNavNode targeturl) nodes)     where active = targeturl `isInNavNodes` nodes-          attrs = if active then [theclass "active"] else []           isInNavNodes u = any (isInNavNode u)           isInNavNode u (NavPage _ u') = u == u'           isInNavNode u (NavMenu _ ns) = u `isInNavNodes` ns@@ -111,8 +112,8 @@   attrs <- forM (pageData page) $ \(k, v) -> getData site v >>= \n -> return (k,n)   todaysDate <- liftM utctDay getCurrentTime   let root' = case length (filter (=='/') $ pageUrl page) of-                    0  -> ""-                    n  -> concat $ replicate n "../"+                    0  -> []+                    n  -> concat $ replicate n ("../" :: String)   rawContents <-     case sourceFile page of           SourceFile sf   -> liftM (filter (/='\r')) $ searchPath srcDirs sf >>= readFile
changelog view
@@ -1,3 +1,8 @@+yst 0.5 (released 13 Mar 2015)++  * Use Bootstrap 3 instead of YUI CSS framework.+  * Use lucid instead of xhtml to generate menu.+ yst 0.4.1.1 (released 29 Sep 2014)    * Allow compilation with latest aeson, pandoc.
− demo/files/css/ie.css
@@ -1,20 +0,0 @@-/* ie.css */-body {text-align:center;}-.container {text-align:left;}-* html .column {overflow-x:hidden;}-* html legend {margin:-18px -8px 16px 0;padding:0;}-ol {margin-left:2em;}-sup {vertical-align:text-top;}-sub {vertical-align:text-bottom;}-html>body p code {*white-space:normal;}-hr {margin:-8px auto 11px;}-.container ul { list-style: disc outside; margin-left: 2em; } /* IE can't handle :before and :after */-.container ul li { text-indent: 0; margin-left: 0; }-.container legend { margin-bottom: 1.6em; } /* IE form margin bug */-sup, sub { font-size: 100%; } /* IE superscript & subscript bug */-.container blockquote p, #content blockquote ul, #content blockquote ol, #content blockquote dl, #content blockquote pre, #content blockquote address, -.container blockquote table, #content blockquote form, #content blockquote h1, #content blockquote h2, #content blockquote h3, #content blockquote h4, #content blockquote h5, #content blockquote h6 { margin-top: .8em; margin-bottom: .8em; } /* IE can't handle :first-child */-* html .container textarea, * html .container input { padding: 0; } /* IE < 7 form fix */-.container input[type='submit'], .container input[type='button'] { padding: 0; } /* IE 7 button fix */-.container legend+* { margin-top: 0; } /* we already added legend margin */-a abbr, a acronym { text-decoration: underline; } /* IE 7 bug */
demo/files/css/screen.css view
@@ -1,51 +1,59 @@-@import url("reset-fonts-grids.css");-@import url("base-min.css"); @import url("hk-pyg.css"); -html { background: #f9f9f9; color: black; } --hr { height: 1px; color: #aaa; background-color: #aaa; border: 0; margin: .2em 0 .2em 0; }--h1, h2, h3, h4, h5, h6 { font-weight: normal; border-bottom: 1px solid black; }--h1 { font-size: 153.9%; margin: 1.07em 0 .535em; }-h2 { font-size: 138.5%; margin: 1.14em 0 .57em; }-h3 { font-size: 123.1%; margin: 1.23em 0 .615em; }-h4 { font-size: 116%; margin: 1.33em 0 .67em; }-h5 { font-size: 108%; margin: 1.6em 0 .8em; }-h6 { font-size: 100%; margin: 1.6em 0 .8em; }+body { padding: 10px;+      font-size: 14pt;+      font-family: Arial, sans-serif;+      line-height: 1.4em; } -ul { list-style-type: square; }-dt { font-weight: bold; margin-bottom: .1em; }+header h1 { font-size: 42pt; } -table { border-top: 1px solid #ccc;  border-left: 1px solid #ccc; }-th, td { border-bottom: 1px solid #ddd; border-right: 1px solid #ccc; }+main { max-width: 46em;+       border-left: 1px solid grey; } -blockquote { padding: 0 1.6em; color: #666; }+nav { margin-top: 1em; } -/* COLORS */+footer { padding: 1em; color: #888; text-align: center; font-size: 93%; } -a:link { text-decoration: underline; color: #36c; }-a:visited { text-decoration: underline; color: #99c; }-a:hover { text-decoration: underline; color: #c33; }-a:active,  a:focus { text-decoration: underline; color: #000; }-/* code,  pre { color: #c33; } /* very optional, but still useful. W3C uses about the same colors for codes */+.navbar-default { background-color: white; border: none; } -h1 > a:link, h1 > a:active, h1 > a:hover, h1 > a:focus, h1 > a:visited,-h2 > a:link, h2 > a:active, h2 > a:hover, h2 > a:focus, h2 > a:visited,-h3 > a:link, h3 > a:active, h3 > a:hover, h3 > a:focus, h3 > a:visited,-h4 > a:link, h4 > a:active, h4 > a:hover, h4 > a:focus, h4 > a:visited,-h5 > a:link, h5 > a:active, h5 > a:hover, h5 > a:focus, h5 > a:visited,-h6 > a:link, h6 > a:active, h6 > a:hover, h6 > a:focus, h6 > a:visited {-        color: black;-        text-decoration: none;+.dropdown-submenu {+    position:relative; }--div#maincol { max-width: 46em; }--#footer { padding: 1em; color: #888; text-align: center; font-size: 93%; }--div#nav { margin-top: 2em; }-div#nav ul { margin-top: 0; margin-left: 1em; margin-bottom: 0; }-div#nav ul li { list-style: none; padding-bottom: 0.1em; }-div#nav ul li.current { list-style: square; }+.dropdown-submenu>.dropdown-menu {+    top:0;+    left:100%;+    margin-top:-6px;+    margin-left:-1px;+    -webkit-border-radius:0 6px 6px 6px;+    -moz-border-radius:0 6px 6px 6px;+    border-radius:0 6px 6px 6px;+}+.dropdown-submenu:hover>.dropdown-menu {+    display:block;+}+.dropdown-submenu>a:after {+    display:block;+    content:" ";+    float:right;+    width:0;+    height:0;+    border-color:transparent;+    border-style:solid;+    border-width:5px 0 5px 5px;+    border-left-color:#cccccc;+    margin-top:5px;+    margin-right:-10px;+}+.dropdown-submenu:hover>a:after {+    border-left-color:#ffffff;+}+.dropdown-submenu.pull-left {+    float:none;+}+.dropdown-submenu.pull-left>.dropdown-menu {+    left:-100%;+    margin-left:10px;+    -webkit-border-radius:6px 0 6px 6px;+    -moz-border-radius:6px 0 6px 6px;+    border-radius:6px 0 6px 6px;+}
− demo/files/js/nav.js
@@ -1,7 +0,0 @@-$(document).ready(function(){-  $("div#nav li > ul").hide();-  $("div#nav li > ul.active").show();-  $("div#nav ul li a").click(function(event){-    $(event.target).parent().children("ul").slideToggle("fast");-  });-});
demo/layout.html.st view
@@ -1,22 +1,53 @@+<!DOCTYPE html> <html>-<head>-   <title>$sitetitle$ - $pagetitle$</title>-   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />-   <link rel="stylesheet" type="text/css" href="$root$css/screen.css" />-   <link rel="stylesheet" type="text/css" media="print" href="$root$css/print.css" />-   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>-   <script src="$root$js/nav.js" type="text/javascript"></script>-</head>-<body>-  <div id="doc3" class="yui-t1">-    <div id="yui-main">-      <div id="maincol" class="yui-b">-$contents$+  <head>+    <meta charset="utf-8">+    <meta name="viewport" content="width=device-width, initial-scale=1.0">+    <meta http-equiv="X-UA-Compatible" content="IE=edge">+    <title>$sitetitle$ - $pagetitle$</title>+    <!--[if lt IE 9]>+        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>+        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>+        <![endif]-->+    <link rel="stylesheet"+          href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">+    <link rel="stylesheet" type="text/css" media="screen"+          href="$root$css/screen.css">+    <link rel="stylesheet" type="text/css" media="print"+          href="$root$css/print.css">+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"+            type="text/javascript"></script>+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>+    <link rel="stylesheet" type="text/css" href="$root$css/screen.css" />+    <link rel="stylesheet" type="text/css" media="print" href="$root$css/print.css" />+  </head>+  <body>+    <div class="container-fluid">+      <header>+        <h1>Yst Demo Site</h1>+      </header>+      <div class="row">+        <nav id="navbar" class="navbar navbar-default col-md-2">+          <div class="navbar-header">+            <button type="button" class="navbar-toggle"+                    data-toggle="collapse" data-target=".navbar-collapse">+              <span class="sr-only">Toggle navigation</span>+              <span class="icon-bar"></span>+              <span class="icon-bar"></span>+              <span class="icon-bar"></span>+            </button>+          </div>+          <div class="navbar-collapse collapse">+            $nav$+          </div>+        </nav>+        <main role="main" class="col-md-10">+          $contents$+        </main>       </div>-    </div>-    <div id="nav" class="yui-b first">-$nav$+      <footer>+        powered by <a href="https://github.com/jgm/yst">yst</a>+      </footer>     </div>-  </div>-</body>+  </body> </html>
− demo/yahoo/css/base-min.css
@@ -1,7 +0,0 @@-/*-Copyright (c) 2009, Yahoo! Inc. All rights reserved.-Code licensed under the BSD License:-http://developer.yahoo.net/yui/license.txt-version: 2.7.0-*/-body{margin:10px;}h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong,dt{font-weight:bold;}optgroup{font-weight:normal;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}del{text-decoration:line-through;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:bold;text-align:center;}caption{margin-bottom:.5em;text-align:center;}sup{vertical-align:super;}sub{vertical-align:sub;}p,fieldset,table,pre{margin-bottom:1em;}button,input[type="checkbox"],input[type="radio"],input[type="reset"],input[type="submit"]{padding:1px;}
− demo/yahoo/css/reset-fonts-grids.css
@@ -1,7 +0,0 @@-/*-Copyright (c) 2009, Yahoo! Inc. All rights reserved.-Code licensed under the BSD License:-http://developer.yahoo.net/yui/license.txt-version: 2.7.0-*/-html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea,button{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}body{text-align:center;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g .yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}.yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#hd:after,#bd:after,#ft:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#hd,#bd,#ft,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}
− demo/yahoo/css/reset-min.css
@@ -1,7 +0,0 @@-/*-Copyright (c) 2009, Yahoo! Inc. All rights reserved.-Code licensed under the BSD License:-http://developer.yahoo.net/yui/license.txt-version: 2.7.0-*/-html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}
yst.cabal view
@@ -1,6 +1,6 @@ name:                yst-version:             0.4.1.1-Tested-With:         GHC == 7.4.1+version:             0.5+Tested-With:         GHC == 7.8.3 Cabal-version:       >= 1.8 build-type:          Simple synopsis:            Builds a static website from templates and data in YAML or@@ -36,14 +36,9 @@                      demo/layout.tex.st                      demo/room101.txt                      demo/room203.txt-                     demo/yahoo/css/base-min.css                      demo/files/css/hk-pyg.css-                     demo/files/css/ie.css                      demo/files/css/print.css-                     demo/yahoo/css/reset-fonts-grids.css-                     demo/yahoo/css/reset-min.css                      demo/files/css/screen.css-                     demo/files/js/nav.js  Source-repository    head   type:              git@@ -55,11 +50,12 @@   other-modules:     Yst.Types, Yst.Yaml, Yst.Util, Yst.Data, Yst.Config,                      Yst.Render, Yst.Build, Yst.CSV, Yst.Sqlite3   build-depends:     base >=3 && < 5, unordered-containers,-                     HStringTemplate >= 0.6.1 && < 0.6.9 || > 0.6.11 && < 0.8,+                     HStringTemplate >= 0.6.1 && < 0.6.9 || > 0.6.11 && < 0.9,                      yaml, csv, aeson >= 0.7 && < 0.9, text,                      scientific >= 0.2 && < 0.4,                      filepath, containers, directory, time,-                     old-locale, old-time, parsec, xhtml,+                     old-locale, old-time, parsec,+                     lucid >= 2.9 && < 2.10,                      pandoc >= 1.10 && < 1.14,                      split, HDBC, HDBC-sqlite3   extensions:        CPP