From fdd1c8d003af4374025a8d3e0777f13a3124da4d Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Sun, 6 Jun 2010 08:43:57 -0400 Subject: [PATCH] Toplevel download links --- collects/meta/web/common/layout.rkt | 7 +++++-- collects/meta/web/common/utils.rkt | 13 +++++++++---- collects/meta/web/download/index.rkt | 15 ++++++++++++++- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/collects/meta/web/common/layout.rkt b/collects/meta/web/common/layout.rkt index 7115f47a6e..fa1946412a 100644 --- a/collects/meta/web/common/layout.rkt +++ b/collects/meta/web/common/layout.rkt @@ -162,7 +162,8 @@ [(_ dir) (with-syntax ([page-id (datum->syntax stx 'page)] [plain-id (datum->syntax stx 'plain)] - [copyfile-id (datum->syntax stx 'copyfile)]) + [copyfile-id (datum->syntax stx 'copyfile)] + [symlink-id (datum->syntax stx 'symlink)]) #`(begin (define resources (make-resources (make-icon dir) (make-logo dir) (make-style dir))) @@ -172,8 +173,10 @@ (plain #:dir dir . xs)) (define (copyfile-id source [target #f] [referrer values]) (copyfile-resource source target referrer #:dir dir)) + (define (symlink-id source [target #f] [referrer values]) + (symlink-resource source target referrer #:dir dir)) #,@(if provide? - #'((provide page-id plain-id copyfile-id)) + #'((provide page-id plain-id copyfile-id symlink-id)) '())))])) (define-syntax (define+provide-context stx) (make-define+provide-context stx #t)) diff --git a/collects/meta/web/common/utils.rkt b/collects/meta/web/common/utils.rkt index c349a9a1ff..d2ec5a6d76 100644 --- a/collects/meta/web/common/utils.rkt +++ b/collects/meta/web/common/utils.rkt @@ -12,12 +12,17 @@ 'in-here "missing source information" stx)))]) #`(build-path '#,src path paths ...))])) -(provide copyfile-resource) -(define (copyfile-resource source [target #f] [referrer values] #:dir [dir #f]) +(define ((make-path-resourcer file-op) + source [target #f] [referrer values] #:dir [dir #f]) (let ([target (or target (let-values ([(base file dir?) (split-path source)]) (path->string file)))]) - (resource (if dir (web-path dir target) target) - (lambda (file) (copy-file source file)) referrer))) + (resource (if (eq? void file-op) + (void) (if dir (web-path dir target) target)) + (lambda (file) (file-op source file)) referrer))) + +(provide copyfile-resource symlink-resource) +(define copyfile-resource (make-path-resourcer copy-file)) +(define symlink-resource (make-path-resourcer make-file-or-directory-link)) (provide web-path) (define (web-path . xs) diff --git a/collects/meta/web/download/index.rkt b/collects/meta/web/download/index.rkt index d4239c2e72..4e56624628 100644 --- a/collects/meta/web/download/index.rkt +++ b/collects/meta/web/download/index.rkt @@ -1,6 +1,19 @@ #lang at-exp s-exp "shared.rkt" +(require racket/string "data.rkt") + +(define (in-ftp . paths) + (string-join (cons "/var/ftp/pub/racket" paths) "/")) + +(define docs (symlink (in-ftp "docs"))) +(define installers (symlink (in-ftp "installers"))) + (provide index) (define index (page #:link-title "Download" #:window-title "Download Racket" - "TODO")) + @ul{@li{Current @a[href: `(,installers "/recent")]{installers} + (or @a[href: installers]{all versions}).} + @li{Current documentation in + @a[href: `(,docs "/recent/html")]{HTML} and in + @a[href: `(,docs "/recent/pdf")]{PDF} + (or @a[href: docs]{all versions}).}}))