yst 0.6.0.1 → 0.7
raw patch · 10 files changed
+48/−42 lines, 10 files
Files
- README.markdown +2/−0
- Yst/Config.hs +4/−0
- Yst/Render.hs +28/−9
- Yst/Types.hs +4/−0
- changelog +9/−0
- demo/files/css/hk-pyg.css +0/−19
- demo/files/css/screen.css +0/−2
- demo/files/js/nav.js +0/−8
- demo/layout.html.st +0/−1
- yst.cabal +1/−3
README.markdown view
@@ -182,6 +182,8 @@ - `filesdir`: list of directories containing static files (default: `files`) - `layout`: the default layout template for the site, relative to `sourcedir` (default: `layout.html.st`)+- `navstyle`: either `top` for a top menu or `side` for a side+ menu The directories specified by `sourcedir` and `datadir` are searched in order to find source/template or data files, respectively. This allows
Yst/Config.hs view
@@ -41,6 +41,10 @@ , indexFile = indexfile , pageIndex = M.fromList $ map (\pg -> (pageUrl pg, pg)) ind , navigation = nav+ , navstyle =+ case getStrAttrWithDefault "navstyle" "top" xs of+ "side" -> SideNav+ _ -> TopNav } _ -> errorExit 7 "Configuration file must be a YAML hash." >> return undefined
Yst/Render.hs view
@@ -43,6 +43,7 @@ import Data.Time import Control.Monad import Text.Pandoc.Error (handleError)+import Data.Monoid -- | @relUrl a b@ returns a URL for @b@ relative to @a@. So, for -- example, @relUrl "a" "a/b.html" = "b.html"@,@@ -68,18 +69,36 @@ dropCommon (x:xs) (y:ys) | x == y = dropCommon xs ys dropCommon xs ys = (xs,ys) -renderNav :: String -> [NavNode] -> String-renderNav targeturl nodes = TL.unpack $ renderText $- ul_ [class_ "nav navbar-nav"] $ mapM_ (renderNavNode targeturl) nodes+renderNav :: NavStyle -> String -> [NavNode] -> String+renderNav sty targeturl nodes = TL.unpack $ renderText $+ ul_ [class_ classes] $ mapM_ (renderNavNode sty targeturl) nodes+ where classes = case sty of+ TopNav -> "nav navbar-nav"+ SideNav -> "nav nav-pills nav-stacked" -renderNavNode :: String -> NavNode -> Html ()-renderNavNode targeturl (NavPage tit pageurl) =- li_ [class_ "active" | pageurl == targeturl] (a_ [href_ pageurl'] (toHtml tit))+renderNavNode :: NavStyle -> String -> NavNode -> Html ()+renderNavNode _ targeturl (NavPage tit pageurl) =+ li_ [class_ "active" | pageurl == targeturl]+ (a_ [href_ pageurl'] (toHtml tit)) where targetdir = takeUrlDir targeturl pageurl' = T.pack $ relUrl targetdir pageurl-renderNavNode targeturl (NavMenu tit nodes) = li_ [] $+renderNavNode TopNav targeturl (NavMenu tit nodes) = li_ [] $ do a_ [class_ "dropdown-toggle", data_ "toggle" "dropdown"] (toHtml tit)- ul_ [class_ "dropdown-menu"] (mapM_ (renderNavNode targeturl) nodes)+ ul_ [class_ "dropdown-menu"]+ (mapM_ (renderNavNode TopNav targeturl) nodes)+renderNavNode SideNav targeturl node@(NavMenu tit nodes) = li_ [] $+ do a_ [id_ buttonId,+ class_ "submenu collapsed", data_ "toggle" "collapse",+ data_ "target" ("#" <> submenuId)]+ (toHtml tit)+ ul_ [id_ submenuId,+ class_ ("nav collapse" <> if expanded then " in" else "")]+ (mapM_ (renderNavNode SideNav targeturl) nodes)+ where submenuId = T.replace " " "_" $ T.pack ("menu-" ++ tit)+ buttonId = T.replace " " "_" $ T.pack ("menu-label-" ++ tit)+ expanded = targeturl `elem` (getUrls node)+ getUrls (NavPage _ u) = [u]+ getUrls (NavMenu _ ns) = concatMap getUrls ns formatFromExtension :: FilePath -> Format formatFromExtension f = case (map toLower $ takeExtension f) of@@ -99,7 +118,7 @@ renderPage :: Site -> Page -> IO String renderPage site page = do- let menuHtml = renderNav (pageUrl page) (navigation site)+ let menuHtml = renderNav (navstyle site) (pageUrl page) (navigation site) let layout = fromMaybe (defaultLayout site) $ layoutFile page srcDirs <- mapM canonicalizePath $ sourceDir site gs <- mapM directoryGroupRecursive srcDirs
Yst/Types.hs view
@@ -45,7 +45,11 @@ , indexFile :: FilePath , pageIndex :: M.Map String Page , navigation :: [NavNode]+ , navstyle :: NavStyle } deriving (Show, Read, Eq)++data NavStyle = TopNav | SideNav+ deriving (Show, Read, Eq) data Source = TemplateFile FilePath | SourceFile FilePath
changelog view
@@ -1,3 +1,12 @@+yst 0.7 (released 07 Mar 2018)++ * Added NavStyle type.+ * Added navstyle field to Site.+ * Added navstyle parameter to config.yaml (values `top` or `side`).+ This controls the CSS used for the menu. Top is default as+ before.+ * Removed old js/nav.js and css/hk-pyg.css from the demo site.+ yst 0.6.0.1 (released 20 Feb 2018) * Update to work with pandoc 2.1.
− demo/files/css/hk-pyg.css
@@ -1,19 +0,0 @@-/* Loosely based on pygment's default colors */-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre - { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }-td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; } -td.sourceCode { padding-left: 5px; }-pre.sourceCode { }-pre.sourceCode span.kw { color: #007020; font-weight: bold; } -pre.sourceCode span.dt { color: #902000; }-pre.sourceCode span.dv { color: #40a070; }-pre.sourceCode span.bn { color: #40a070; }-pre.sourceCode span.fl { color: #40a070; }-pre.sourceCode span.ch { color: #4070a0; }-pre.sourceCode span.st { color: #4070a0; }-pre.sourceCode span.co { color: #60a0b0; font-style: italic; }-pre.sourceCode span.ot { color: #007020; }-pre.sourceCode span.al { color: red; font-weight: bold; }-pre.sourceCode span.fu { color: #06287e; }-pre.sourceCode span.re { }-pre.sourceCode span.er { color: red; font-weight: bold; }
demo/files/css/screen.css view
@@ -1,5 +1,3 @@-@import url("hk-pyg.css");- body { padding-top: 60px; /* make room for top-fixed navbar */ font-size: 14pt; line-height: 1.4em; }
@@ -1,8 +0,0 @@-$(document).ready(function(){- $('.tree-toggle').click(function () {- $(this).parent().children('ul.tree').toggle(200);- });- $('.tree-toggle').each(function () {- $(this).parent().children('ul.tree').toggle(0);- });-});
demo/layout.html.st view
@@ -17,7 +17,6 @@ type="text/javascript"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> - <script src="$root$js/nav.js" type="text/javascript"></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>
yst.cabal view
@@ -1,5 +1,5 @@ name: yst-version: 0.6.0.1+version: 0.7 Tested-With: GHC == 7.8.3 Cabal-version: >= 1.8 build-type: Simple@@ -36,8 +36,6 @@ demo/layout.tex.st demo/room101.txt demo/room203.txt- demo/files/js/nav.js- demo/files/css/hk-pyg.css demo/files/css/print.css demo/files/css/screen.css