From 537e72333f8deafa59219b60dcae0a4f52569317 Mon Sep 17 00:00:00 2001 From: Jasper Van der Jeugt Date: Sat, 15 Jun 2013 20:15:33 +0200 Subject: Sanitize URLs in toUrl Closes #163 --- src/Hakyll/Web/Html.hs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/Hakyll/Web') diff --git a/src/Hakyll/Web/Html.hs b/src/Hakyll/Web/Html.hs index 58b5c43..d06b7c2 100644 --- a/src/Hakyll/Web/Html.hs +++ b/src/Hakyll/Web/Html.hs @@ -98,9 +98,17 @@ renderTags' = TS.renderTagsOptions TS.renderOptions -- Result: -- -- > "/foo/bar.html" +-- +-- This also sanitizes the URL, e.g. converting spaces into '%20' toUrl :: FilePath -> String -toUrl ('/' : xs) = '/' : xs -toUrl url = '/' : url +toUrl url = case url of + ('/' : xs) -> '/' : sanitize xs + xs -> '/' : sanitize xs + where + -- This probably needs to be a separate function + sanitize = concatMap $ \c -> case c of + ' ' -> "%20" + _ -> [c] -------------------------------------------------------------------------------- -- cgit v1.2.3