diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2021-07-17 20:19:28 +0200 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2021-07-17 20:19:28 +0200 |
commit | 8ce817dd4453f35ce92afa531c540554429c7299 (patch) | |
tree | 90236cdc7e59bdf99b32467b89adcb8c5a0b8e22 /lib/Hakyll/Web/Html.hs | |
parent | b861c20ff2d7460061e73492e3a945e48ef40bac (diff) | |
parent | d739fd1eea40de9ded3b4f682c849d3c31eba92c (diff) | |
download | hakyll-8ce817dd4453f35ce92afa531c540554429c7299.tar.gz |
Merge branch 'master' of https://github.com/jaspervdj/hakyll
Diffstat (limited to 'lib/Hakyll/Web/Html.hs')
-rw-r--r-- | lib/Hakyll/Web/Html.hs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/Hakyll/Web/Html.hs b/lib/Hakyll/Web/Html.hs index 8cbfaa3..7aa3804 100644 --- a/lib/Hakyll/Web/Html.hs +++ b/lib/Hakyll/Web/Html.hs @@ -7,6 +7,7 @@ module Hakyll.Web.Html -- * Headers , demoteHeaders + , demoteHeadersBy -- * Url manipulation , getUrls @@ -50,13 +51,20 @@ withTagList f = renderTags' . f . parseTags' -------------------------------------------------------------------------------- -- | Map every @h1@ to an @h2@, @h2@ to @h3@, etc. demoteHeaders :: String -> String -demoteHeaders = withTags $ \tag -> case tag of +demoteHeaders = demoteHeadersBy 1 + +-------------------------------------------------------------------------------- +-- | Maps any @hN@ to an @hN+amount@ for any @amount > 0 && 1 <= N+amount <= 6@. +demoteHeadersBy :: Int -> String -> String +demoteHeadersBy amount + | amount < 1 = id + | otherwise = withTags $ \tag -> case tag of TS.TagOpen t a -> TS.TagOpen (demote t) a TS.TagClose t -> TS.TagClose (demote t) t -> t where demote t@['h', n] - | isDigit n = ['h', intToDigit (min 6 $ digitToInt n + 1)] + | isDigit n = ['h', intToDigit (min 6 $ digitToInt n + amount)] | otherwise = t demote t = t |