parse_result = parseURIReference url
-
add_trailing_slash :: URL -> URL
add_trailing_slash url =
case parse_result of
Nothing -> url -- Shrug?
Just uri ->
let old_path = uriPath uri in
- if isSuffixOf "/" old_path then
- url -- It already had a trailing slash
+ if (isSuffixOf "/" old_path) || (isSuffixOf "bigpage" old_path) then
+ -- It already had a trailing slash, or it's a 'bigpage' URL.
+ -- Trailing slashes after 'bigpage' don't work.
+ url
else
show $ uri { uriPath = old_path ++ "/" }
where
+-- Bug here, doesn't work on unicode paths!
filename :: URL -> Maybe String
filename url =
case parse_result of
-make_absolute_uri :: URI -> Maybe URI
+make_absolute_uri :: URI -> URI
make_absolute_uri relative_uri =
relativeTo relative_uri base_uri
where
make_absolute_url :: URL -> Maybe URL
-make_absolute_url relative_url =
+make_absolute_url relative_url =
case parse_result of
Nothing -> Nothing
Just relative_uri ->
- let abs_result = make_absolute_uri relative_uri in
- case abs_result of
- Nothing -> Nothing
- Just abs_uri -> Just $ show abs_uri
+ Just $ show $ make_absolute_uri relative_uri
where
parse_result = parseURIReference relative_url