From 03b2e5d7d0d752785730212e4b765e775650efd0 Mon Sep 17 00:00:00 2001 From: Miguel Date: Tue, 19 Feb 2019 16:03:38 +0100 Subject: added bootstrap cards plugin et al. --- src/WWWStaticusPlugins.hs | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'src/WWWStaticusPlugins.hs') diff --git a/src/WWWStaticusPlugins.hs b/src/WWWStaticusPlugins.hs index 790a694..6718977 100644 --- a/src/WWWStaticusPlugins.hs +++ b/src/WWWStaticusPlugins.hs @@ -6,6 +6,7 @@ module WWWStaticusPlugins ,staticusPluginPandoc ,staticusPluginFill ,staticusPluginWrite + ,staticusPluginCards ) where import WWWStaticus @@ -20,6 +21,7 @@ import Data.List.Split import Data.List.Utils import Data.Tuple.Extra import Text.Pandoc +import Text.Regex -- -- PLUGIN IDEAS @@ -30,17 +32,17 @@ import Text.Pandoc -- super `gallery and everythin` plugin, just throw images,videos, -- zips,tars,source files,mds etc inside a folder-> gen page! -- --- flexible layout, main pic, secondary pics +-- flexible layout, main pic, secondary pics, multiple templates 1 2 3 -- -- scale images -- --- asciinema, git, videos +-- asciinema, git, videos (generate both from single one) -- -- contact form? (use nginx log? save post request??) -- -- pdf plugin -- --- autotranslate plugin :P +-- autotranslate/ multilang -- -- |little helper to get values out of a map easily @@ -60,7 +62,8 @@ par' k m = case M.lookup k m of staticusPluginsDefault::[StaticusPlugin] staticusPluginsDefault=[ staticusPluginInit ,staticusPluginCfg - ,staticusPluginCopy [".jpg",".png",".zip",".css",".js",".ico",".mp4",".ogv"] + ,staticusPluginCopy [".jpg",".png",".zip",".css",".js",".ico",".mp4",".ogv",".hs",".glade"] + ,staticusPluginCards ,staticusPluginPandoc ,staticusPluginFill ,staticusPluginWrite @@ -88,7 +91,7 @@ staticusPluginInit = StaticusPlugin "init" id runIO ,("template.html",tmpl) ,("menutop",menutop) ,("submenu",submenu) - ,("breadcrumbs",breadcrumbs) + ,("breadcrumbs",if isHome then "" else breadcrumbs) ,("title",if null brc then "Home" else cln $ last brc) ]) m @@ -149,3 +152,27 @@ staticusPluginWrite = StaticusPlugin "writer" id runIO writeFile ((par "outdir" m)++"/index.html") (par "final" m) return m +-- |simple bootstrap cards +staticusPluginCards::StaticusPlugin +staticusPluginCards = StaticusPlugin "bootstrap cards" run return + where run m = M.union (M.fromList[("index.md",makeCards $ par "index.md" m)]) m + makeCards x = concat $ evr2 $ splitRegex (mkRegex "^\\{BEGIN:CARD\\}.*$|^\\{END:CARD\\}.*$") x + evr2 (x:y:xs) = x:createCard y:evr2 xs + evr2 x = x + createCard v = let (_:x:y:z:_:xs)=lines v in replace "###IMG###" x + $ replace "###TITLE###" y + $ replace "###FOOTER###" z -- (z++"
"++a) + $ replace "###TEXT###" (unlines $ map spans xs) tmpl + tmpl ="
" + ++"
" + ++"" + ++"
" + ++"
###TITLE###
" + ++"

" + ++"###TEXT###" + ++"

" + ++"
" + ++"" + ++"
" + spans ('-':vv)=let (x:xs)=words vv in ""++unwords xs++"" + spans xx = xx -- cgit v1.2.3