> module Url 
>        (urls)
>        where

> import Codec.Binary.Base64.String (encode)

> import Puncs
> import Delimiters
> import Sorttags

> markenc x = [inv1] ++ encode x ++ [inv2]
> descobf = sorttags "[" "]" markenc

> isurl :: [Char] -> Bool
> isurl word = ((take 7 word == "http://"  )   ||
>               (take 8 word == "https://" )   ||
>               (take 6 word == "ftp://"  ))   &&
>               (not ('[' `elem` word)      )

> url :: [Char] -> [Char]
> url word | isurl word && (last word) `elem` puncs &&
>            last (init (word)) `elem` puncs =
>                  "<url>" ++ (init (init word)) ++ "</url>" ++
>                  [last (init (word))] ++ [(last word)]
>          | isurl word && (last word) `elem` puncs =
>                  "<url>" ++ (init word) ++ "</url>" ++ [(last word)]
>          | isurl word && not ((last word) `elem` puncs) =
>                  "<url>" ++ word ++ "</url>"
>          | otherwise = word

> urlline :: String -> String
> urlline = unwords . (map url) . words

> urls :: String -> String
> urls = unlines . (map urlline) . lines

