diff --git a/css/default.css b/css/default.css index c946ad0..195fa26 100644 --- a/css/default.css +++ b/css/default.css @@ -76,6 +76,24 @@ article li { margin-left: 1.5ex; } +.flattr { + display: inline-block; + vertical-align: middle; + font-size: 1.2em; +} + +.flattr:before { + display: inline-block; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8c3ZnIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiIHZlcnNpb249IjEuMSIgd2lkdGg9IjIwMS4wOTc1IiBoZWlnaHQ9IjIwMS4zOTM3NSIgaWQ9InN2ZzI4MTYiIHhtbDpzcGFjZT0icHJlc2VydmUiIGlua3NjYXBlOnZlcnNpb249IjAuNDgrZGV2ZWwgcjEyMjQwIGN1c3RvbSIgc29kaXBvZGk6ZG9jbmFtZT0iRmxhdHRyLUxvZ28uc3ZnIj48bWV0YWRhdGEgaWQ9Im1ldGFkYXRhOTE2Ij48cmRmOlJERj48Y2M6V29yayByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIvPjxkYzp0aXRsZT5GbGF0dHItTG9nbzwvZGM6dGl0bGU+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxzb2RpcG9kaTpuYW1lZHZpZXcgcGFnZWNvbG9yPSIjZmZmZmZmIiBib3JkZXJjb2xvcj0iIzY2NjY2NiIgYm9yZGVyb3BhY2l0eT0iMSIgb2JqZWN0dG9sZXJhbmNlPSIxMCIgZ3JpZHRvbGVyYW5jZT0iMTAiIGd1aWRldG9sZXJhbmNlPSIxMCIgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTE4NCIgaWQ9Im5hbWVkdmlldzkxNCIgc2hvd2dyaWQ9ImZhbHNlIiBmaXQtbWFyZ2luLXRvcD0iMTAiIGZpdC1tYXJnaW4tbGVmdD0iMTAiIGZpdC1tYXJnaW4tcmlnaHQ9IjEwIiBmaXQtbWFyZ2luLWJvdHRvbT0iMTAiIGlua3NjYXBlOnpvb209IjEuNjU3NjQ3MSIgaW5rc2NhcGU6Y3g9IjgyLjAyODYzNyIgaW5rc2NhcGU6Y3k9IjEwNy4yMjk4MiIgaW5rc2NhcGU6d2luZG93LXg9IjAiIGlua3NjYXBlOndpbmRvdy15PSIwIiBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcyODE2Ii8+PHRpdGxlIGlkPSJ0aXRsZTI5MDEiPkZsYXR0ci1Mb2dvPC90aXRsZT48ZGVmcyBpZD0iZGVmczI4MjAiPjxsaW5lYXJHcmFkaWVudCB4MT0iMCIgeTE9IjAiIHgyPSIxIiB5Mj0iMCIgaWQ9ImxpbmVhckdyYWRpZW50Mjg0MCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCwxMzQuNzUyNDQsMTM0Ljc1MjQ0LDAsMTUwLjc0OTUxLDI0Ny43MzA0NykiIHNwcmVhZE1ldGhvZD0icGFkIj48c3RvcCBpZD0ic3RvcDI4NDIiIHN0eWxlPSJzdG9wLWNvbG9yOiNlYTVmMjk7c3RvcC1vcGFjaXR5OjEiIG9mZnNldD0iMCIvPjxzdG9wIGlkPSJzdG9wMjg0NCIgc3R5bGU9InN0b3AtY29sb3I6I2ZhYmQxZjtzdG9wLW9wYWNpdHk6MSIgb2Zmc2V0PSIxIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjAiIGlkPSJsaW5lYXJHcmFkaWVudDI4NjAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAsLTEzNC43NTE5NSwtMTM0Ljc1MTk1LDAsMTYwLjg3NDUxLDM3Mi4xMjEwOSkiIHNwcmVhZE1ldGhvZD0icGFkIj48c3RvcCBpZD0ic3RvcDI4NjIiIHN0eWxlPSJzdG9wLWNvbG9yOiNhYmQzM2M7c3RvcC1vcGFjaXR5OjEiIG9mZnNldD0iMCIvPjxzdG9wIGlkPSJzdG9wMjg2NCIgc3R5bGU9InN0b3AtY29sb3I6IzZjYjAyZjtzdG9wLW9wYWNpdHk6MSIgb2Zmc2V0PSIxIi8+PC9saW5lYXJHcmFkaWVudD48Y2xpcFBhdGggaWQ9ImNsaXBQYXRoMjg3MiI+PHBhdGggZD0ibSAwLDU5NS4yNzYgODQxLjg5LDAgTCA4NDEuODksMCAwLDAgMCw1OTUuMjc2IFoiIGlkPSJwYXRoMjg3NCIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LC05OC41MDA2MDIsNDk3LjMwNTE2KSIgaWQ9ImcyODI2Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLjQyNzQ4MTMsNy4zNjAxMzAyKSIgaWQ9ImcyODI4Ij48ZyBpZD0iZzI4MzAiPjxnIGlkPSJnMjgzNiI+PGcgaWQ9ImcyODM4Ij48cGF0aCBkPSJtIDEzNS4zNzcsMzgyLjQ4NCBjIC0zNC40MzEsMCAtNTIuMDA0LC0xOS44NjMgLTUyLjAwNCwtNTYuOTQ5IGwgMCwwIDAsLTI1LjkwNiAwLC01MS44OTkgMzMuNzI4LDMzLjgxNyAwLDM5LjUyMyBjIDAsMTUuMzY0IDQuMDY1LDI1LjE0MSAxNy43MDIsMjcuMzM2IGwgMCwwIGMgNC43NjQsMC45MzMgMTQuNjc5LDAuNjA2IDIwLjk4MywwLjYwNiBsIDAsMCAwLC0yMy40NjcgYyAwLC0wLjIxNCAwLjAyOSwtMC41OTYgMC4wODQsLTAuNzkyIGwgMCwwIGMgMC4yNjQsLTAuOTUgMS4xMjIsLTEuNjQ2IDIuMTM4LC0xLjY0OCBsIDAsMCBjIDAuNTc1LC0wLjAwMSAxLjExMywwLjI5OCAxLjY2OCwwLjg0NiBsIDAsMCA1OC40NSw1OC41MjQgLTM5LjIzNCwwLjAwOSBMIDEzNS4zNzcsMzgyLjQ4NCBaIiBpZD0icGF0aDI4NDYiIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQyODQwKTtzdHJva2U6bm9uZSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIvPjwvZz48L2c+PC9nPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLjQyNzQ4MTMsNy4zNjAxMzAyKSIgaWQ9ImcyODQ4Ij48ZyBpZD0iZzI4NTAiPjxnIGlkPSJnMjg1NiI+PGcgaWQ9ImcyODU4Ij48cGF0aCBkPSJtIDE5NC41MjMsMzM4LjMwNSAwLC0zOS41MjIgYyAwLC0xNS4zNjQgLTQuMDY2LC0yNS4xNDIgLTE3LjcwMiwtMjcuMzM3IGwgMCwwIGMgLTQuNzY0LC0wLjkzMiAtMTQuNjc5LC0wLjYwNSAtMjAuOTgzLC0wLjYwNSBsIDAsMCAwLDIzLjQ2NiBjIDAsMC4yMTMgLTAuMDI5LDAuNTk2IC0wLjA4NCwwLjc5MiBsIDAsMCBjIC0wLjI2NCwwLjk1MSAtMS4xMjEsMS42NDYgLTIuMTM4LDEuNjQ4IGwgMCwwIGMgLTAuNTc1LDAuMDAyIC0xLjExMywtMC4yOTggLTEuNjY4LC0wLjg0NSBsIDAsMCAtNTguNDUsLTU4LjUyNCAzOS4yMzQsLTAuMDA5IDQzLjUxNSwwIGMgMzQuNDMxLDAgNTIuMDA0LDE5Ljg2MyA1Mi4wMDQsNTYuOTQ4IGwgMCwwIDAsMjUuOTA3IDAsNTEuODk4IEwgMTk0LjUyMywzMzguMzA1IFoiIGlkPSJwYXRoMjg2NiIgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDI4NjApO3N0cm9rZTpub25lIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIi8+PC9nPjwvZz48L2c+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuNDI3NDgxMyw3LjM2MDEzMDIpIiBpZD0iZzI4NjgiPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwUGF0aDI4NzIpIiBpZD0iZzI4NzAiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwMC4wMzkxLDI2Ni4xODI2KSIgaWQ9ImcyODc2Ii8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDEzLjE3OTcsMjQzLjc2OTUpIiBpZD0iZzI4ODAiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MjIuMjksMjc2Ljk3MDcpIiBpZD0iZzI4ODQiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNjQuMjU2MywzNjEuNjEyMykiIGlkPSJnMjg4OCIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDc1Ni40NTgsMzM2LjMwMjcpIiBpZD0iZzI4OTIiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1NDcuMDI5MywyNzYuOTg3MykiIGlkPSJnMjg5NiIvPjwvZz48L2c+PC9nPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + content: " "; + width: 1em; + height: 1em; + transform: translateY(10%); + margin-right: 0.8ex; +} + .sidebar { position: fixed; width: 200px; @@ -231,6 +249,8 @@ h2 { .left svg, .right svg { margin-bottom: -3px; + margin-left: 0.8ex; + margin-right: 0.8ex; } .info { diff --git a/src/Main.hs b/src/Main.hs index eda0f84..3583c62 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -3,7 +3,7 @@ import Data.Monoid (mappend) import Hakyll import Data.Monoid ((<>), mconcat) -import Data.List (sort, delete) +import Data.List (sort, delete, intercalate) import System.Directory -------------------------------------------------------------------------------- @@ -65,9 +65,12 @@ main = do paginateRules pages $ \num _ -> do route $ setExtension "html" compile $ do + let ident = paginateMakeId pages $ num + tagList <- getTags ident + let tagString = intercalate "," tagList compiled <- getResourceBody >>= renderPandoc let pageCtx = paginateContext pages num - let ctx = (postCtx tags) <> pageCtx + let ctx = (postCtx tags) <> pageCtx <> flattrCtx tagString full <- loadAndApplyTemplate "templates/post.html" ctx compiled _ <- saveSnapshot "content" compiled loadAndApplyTemplate "templates/default.html" baseCtx full @@ -139,6 +142,13 @@ feedCtx = mconcat -------------------------------------------------------------------------------- +flattrCtx :: String -> Context String +flattrCtx str = mconcat + [ constField "rawtags" str + ] + +-------------------------------------------------------------------------------- + feedConf :: FeedConfiguration feedConf = FeedConfiguration { feedTitle = "nek0's blog" diff --git a/templates/post.html b/templates/post.html index c5c2cbf..76b3286 100644 --- a/templates/post.html +++ b/templates/post.html @@ -10,6 +10,8 @@ $body$ +flattr this! +