| Index: cms/utils.py |
| diff --git a/cms/utils.py b/cms/utils.py |
| index 52bcef5008158a00050440cc32df28fc5d7a2981..702625e89248e4374060c7ff6aee467cc1a58eed 100644 |
| --- a/cms/utils.py |
| +++ b/cms/utils.py |
| @@ -17,7 +17,15 @@ |
| from .converters import converters, TemplateConverter |
| -def process_page(source, locale, page, format, site_url_override=None): |
| +def get_page_params(source, locale, page, format=None, site_url_override=None): |
| + # Guess page format if omitted, but default to Markdown for friendlier exceptions |
| + if format is None: |
| + for format in converters.iterkeys(): |
| + if source.has_page(page, format): |
| + break |
| + else: |
| + format = "md" |
| + |
| params = { |
| "source": source, |
| "template": "default", |
| @@ -46,7 +54,6 @@ def process_page(source, locale, page, format, site_url_override=None): |
| # Note: The converter might change some parameters so we can only read in |
| # template data here. |
| params["templatedata"] = source.read_template(params["template"]) |
| - template_converter = TemplateConverter(params, key="templatedata") |
| defaultlocale = params["config"].get("general", "defaultlocale") |
| params["defaultlocale"] = defaultlocale |
| @@ -62,4 +69,10 @@ def process_page(source, locale, page, format, site_url_override=None): |
| params["available_locales"] = locales |
| params["head"], params["body"] = converter() |
| - return template_converter() |
| + return params |
| + |
| +def process_page(source, locale, page, format, site_url_override=None): |
| + return TemplateConverter( |
| + get_page_params(source, locale, page, format, site_url_override), |
| + key="templatedata" |
| + )() |