diff --git a/hyde/model.py b/hyde/model.py index 7c91e30..4e33cc0 100644 --- a/hyde/model.py +++ b/hyde/model.py @@ -155,6 +155,7 @@ class Config(Expando): layout_root='layout', media_url='/media', base_url="/", + encode_safe=None, not_found='404.html', plugins = [], ignore = [ "*~", "*.bak", ".hg", ".git", ".svn"], diff --git a/hyde/site.py b/hyde/site.py index fa56087..4531940 100644 --- a/hyde/site.py +++ b/hyde/site.py @@ -435,6 +435,8 @@ class Site(object): .replace(os.sep, '/').encode("utf-8") if safe is not None: return quote(fpath, safe) + elif self.config.encode_safe is not None: + return quote(fpath, self.config.encode_safe) else: return quote(fpath) @@ -448,6 +450,8 @@ class Site(object): .replace(os.sep, '/').encode("utf-8") if safe is not None: return quote(fpath, safe) + elif self.config.encode_safe is not None: + return quote(fpath, self.config.encode_safe) else: return quote(fpath) @@ -457,6 +461,9 @@ class Site(object): configuration and returns the appropriate url. The return value is url encoded. """ + if safe is None and self.config.encode_safe is not None: + safe = self.config.encode_safe + if urlparse.urlparse(path)[:2] != ("",""): return path if self.is_media(path):