[web-devel] Yesod: unifying breadcrumbs and routes
michael at snoyman.com
Fri Jun 10 07:03:24 CEST 2011
I agree that defining breadcrumbs separately is an annoying, tedious
process. But the fact is that it's a necessary tediousness. It's very
rare that you could determine the title or parent that easily for
every route. Take the simple example of a blog with multiple authors:
/ RootR GET
/author/#AuthorId AuthorR GET
/post/#PostId PostR GET
The title for AuthorR and PostR will both need to be looked up from
the database, and the parent page for PostR will also require a DB
lookup. (You could restructure your URLs to avoid that, but that's not
my point here.)
On Fri, Jun 10, 2011 at 2:02 AM, Eric Schug <schugschug at gmail.com> wrote:
> There seems to be much redundant information created within the Yesod
> One place to define the routes
> Another place defines the route hierarchy for breadcrumbs with titles.
> A third place defines, but not integrated into Yesod, defines use menus
> (usually similar hierarchy and titles).
> Would it be possible to have all of this defined into one place, by
> extending the routes definition using white space
> hierarchy similar to hamlet definition.
> and optionally include Title name.
> -- Example config/routes
> /static StaticR Static getStatic
> /favicon.ico FaviconR GET
> /robots.txt RobotsR GET
> / RootR GET "Home"
> /contact ContactR GET "Contact Us"
> /services ServicesR GET "Our Services"
> /services/stuffwedo StuffWeDoR GET "Stuff We Do"
> The resource list would be expanded to include this hierarchy. Something
> Resource String
> String Maybe String
> From this a breadcrumb could be build from a maker (if desired).
> mkYesodData "Example" $(parseRoutesFile "config/routes")
> mkYesodBreadcrumbs "Example" resourcesExample -- creates breadcrumbsExample
> and a hierarchy useful for building Menus
> mkYesodHierarchy "Example" resourcesExample -- creates a nested table of
> (Route, Html) pairs
> The menu list could also be pulled from the data, with possible few options.
> web-devel mailing list
> web-devel at haskell.org
More information about the web-devel