diff piecrust/sources/posts.py @ 792:58ebf50235a5

routing: Simplify how routes are defined. * No more declaring the type of route parameters -- the sources and generators already know what type each parameter is supposed to be. * Same for variadic parameters -- we know already. * Update cache version to force a clear reload of the config. * Update tests. TODO: simplify code in the `Route` class to use source or generator transparently.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 07 Sep 2016 08:58:41 -0700
parents ff404adfcf45
children f0930178fd01
line wrap: on
line diff
--- a/piecrust/sources/posts.py	Mon Sep 05 22:30:05 2016 -0700
+++ b/piecrust/sources/posts.py	Wed Sep 07 08:58:41 2016 -0700
@@ -4,6 +4,7 @@
 import logging
 import datetime
 from piecrust import osutil
+from piecrust.routing import RouteParameter
 from piecrust.sources.base import (
         PageSource, InvalidFileSystemEndpointError, PageFactory,
         MODE_CREATING, MODE_PARSING)
@@ -36,6 +37,13 @@
         metadata = self._parseMetadataFromPath(ref_path)
         return path, metadata
 
+    def getSupportedRouteParameters(self):
+        return [
+            RouteParameter('slug', RouteParameter.TYPE_STRING),
+            RouteParameter('day', RouteParameter.TYPE_INT2),
+            RouteParameter('month', RouteParameter.TYPE_INT2),
+            RouteParameter('year', RouteParameter.TYPE_INT4)]
+
     def buildPageFactory(self, path):
         if not path.startswith(self.fs_endpoint_path):
             raise Exception("Page path '%s' isn't inside '%s'." % (