diff options
| author | Miguel <m.i@gmx.at> | 2019-02-19 16:03:38 +0100 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2019-02-19 16:03:38 +0100 |
| commit | 03b2e5d7d0d752785730212e4b765e775650efd0 (patch) | |
| tree | 6818a651b024f61af1493e10c970bf637f002b17 /src/WWWStaticusPlugins.hs | |
| parent | c29bc4bd20f2f098720a2b973b1d14f0938cf226 (diff) | |
added bootstrap cards plugin et al.
Diffstat (limited to 'src/WWWStaticusPlugins.hs')
| -rw-r--r-- | src/WWWStaticusPlugins.hs | 37 |
1 files changed, 32 insertions, 5 deletions
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++"<br />"++a) + $ replace "###TEXT###" (unlines $ map spans xs) tmpl + tmpl ="<div class ='col-sm-6 col-md-4 col-xl-3 mb-4'>" + ++"<div class='card h-100'>" + ++"<img class='border-bottom card-img-top' src='###IMG###' >" + ++"<div class='card-body'>" + ++"<h5 class='card-title'>###TITLE###</h5>" + ++"<p class='card-text'>" + ++"###TEXT###" + ++"</p>" + ++"</div>" + ++"<div class='text-center card-footer text-muted'>###FOOTER###</div>" + ++"</div></div>" + spans ('-':vv)=let (x:xs)=words vv in "<span class='badge "++x++"'>"++unwords xs++"</span>" + spans xx = xx |
