Post#url wasn't escaped at all. For example, when we have a page named 'a#b.html', we expect its url to be 'a%23b.html', but it was actually 'a#b.html'. We now use Jekyll::URL.escape_path and Jekyll::URL.unescape_path.