From 8f69e94980760da76651a1140d052b0acbae90a7 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Fri, 2 Jul 2010 04:52:22 -0400 Subject: [PATCH] Added `get-resource-path' to get the path of any resource. Use it to allow getting the standard resource paths from the common layout. --- collects/meta/web/common/layout.rkt | 3 +++ collects/meta/web/html/resource.rkt | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/collects/meta/web/common/layout.rkt b/collects/meta/web/common/layout.rkt index d6f15ec11c..fb91cbd715 100644 --- a/collects/meta/web/common/layout.rkt +++ b/collects/meta/web/common/layout.rkt @@ -184,6 +184,9 @@ [(head) make-head] [(navbar) make-navbar] [(favicon-headers) favicon] + [(icon-path) (lambda () (get-resource-path icon))] + [(logo-path) (lambda () (get-resource-path logo))] + [(style-path) (lambda () (get-resource-path style))] [else (error 'resources "internal error")]) more)))) diff --git a/collects/meta/web/html/resource.rkt b/collects/meta/web/html/resource.rkt index 2cd219d74a..774a299c42 100644 --- a/collects/meta/web/html/resource.rkt +++ b/collects/meta/web/html/resource.rkt @@ -200,7 +200,13 @@ (add-renderer path render) (make-keyword-procedure (lambda (kws kvs . args) (keyword-apply referrer kws kvs (url) args)) - (lambda args (apply referrer (url) args))))) + (case-lambda [(x) (if (eq? x get-resource-path) (url) (referrer (url) x))] + [args (apply referrer (url) args)])))) + +;; make it possible to always get the path to a resource +(provide get-resource-path) +(define (get-resource-path resource) + (resource get-resource-path)) ;; a convenient utility to create renderers from some output function (like ;; `output-xml' or `display') and some content