From fb968d1d34648f2a2902b1970c957d3db13993ab Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Sat, 10 Jul 2010 01:58:49 -0400 Subject: [PATCH] Added a page for drracket.org. --- collects/meta/web/config.rkt | 1 + collects/meta/web/minis/drracket.rkt | 155 +++++++++++++++++++++++++++ collects/meta/web/minis/main.rkt | 2 +- 3 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 collects/meta/web/minis/drracket.rkt diff --git a/collects/meta/web/config.rkt b/collects/meta/web/config.rkt index ac4c8415ac..d95c098b34 100644 --- a/collects/meta/web/config.rkt +++ b/collects/meta/web/config.rkt @@ -6,6 +6,7 @@ ("download" "http://download.racket-lang.org/") ("lists" "http://lists.racket-lang.org/") ("bugs" "http://bugs.racket-lang.org/") + ("drracket" "http://drracket.org/") ;; stubs usually use absolute paths for resources, since they're ;; templates that often get used in sub-dir pages too ("stubs/planet" "http://planet.racket-lang.org/" abs) diff --git a/collects/meta/web/minis/drracket.rkt b/collects/meta/web/minis/drracket.rkt new file mode 100644 index 0000000000..66171462e5 --- /dev/null +++ b/collects/meta/web/minis/drracket.rkt @@ -0,0 +1,155 @@ +#lang at-exp s-exp "../common.rkt" + +(define-context "drracket") + +;; This just shows an ascii logo and redirects to the main page. Thanks +;; to Can Burak Cilingir for both the logo and the drracket.org domain +;; name. + +(define index + (page #:title "DrRacket" #:extra-headers (delay headers) (center-div logo))) + +(require racket/list (only-in "../www/main.rkt" main)) + +(define (logo) + (define (text->lines text) + (cond [(null? text) '()] + [(null? (cdr text)) + (if (equal? "\n" (car text)) '() text)] + [(equal? "\n" (cadr text)) + (cons (car text) (text->lines (cddr text)))] + [else + (text->lines (cons (string-append (car text) (cadr text)) + (cddr text)))])) + (define (do-line chars colors) + (let loop ([chars (map (lambda (c) (if (eq? #\space c) nbsp c)) + (string->list chars))] + [colors (string->list colors)]) + (let* ([class (car colors)] + [n (for/or ([color (in-list (cdr colors))] [i (in-naturals 1)]) + (and (not (equal? class color)) i))] + [block (if n (take chars n) chars)] + [block (if (eq? #\space class) + block (span class: (list "c" class) block))]) + (if n + (cons block (loop (drop chars n) (drop colors n))) + (list block))))) + (pre style: "font-family: monospace, fixed; font-weight: bold;" + (add-newlines (map do-line (text->lines char-matrix) + (text->lines color-matrix))))) + +(define (headers) + (list + (style/inline type: 'text/css + (add-newlines (map (lambda (c) + @list{.c@(car c) { + color: #@(cadr c); + background-color: #@(caddr c); + }}) + colors))) + (meta http-equiv: "refresh" + content: (list "2;URL=" (get-resource-path main))))) + +(define char-matrix + @list|{ + 88XSS% + .888;@88@:88@XXS%tt + 8@Xt tX88X X88@XS%%t:. + 8%:.. ::t@88;88@XX%%t;:.. + @t. 8: :X@ %888XX%%t;:. : + 8 . . . 8 .S8%888@XS%%t;:. .S + @ .:8S888@XStt;;:. .; + X. . 8. :% ;888XS%tt;::. .t + @: . . . . 8% t@8X88@X%%;;::. :t + 8: . % .SX%88@XStt;::.. .;S + 8S . . S .%S8888XS%t;::.. .:tX + 8; . . . . S 8; t@8@X@XS%t;::.. .:;S + @@: . . . 8.8 8..%@8X8@XStt;:... .:;%@ + @X: . . . ;8 8XS88@X88%%;::.. ..;%@ + @@: . . . X;.% 888Xtt88St;::.. .:;tX + @8; . .X..X ;@St; .8;;:.. ..:;%@ + X8S. . . . 8 8 ;S8;;. 8X::. ...;t%@ + %@@%. . X ; %%% :. ;tX%;:. ..:;tS8 + tX8X;. . 8. .X .S@888@.:t%%@;: ..::t%S8 + :%X8Xt:. . .8 . 8 ;X8888X8:;%S@X t...::;tS@@ + ;%@88%t;:.. . ; S :S@8888XXXX%SX888::.::;t%X8 + .;tX@8@XS%ttt:t%X .tX@8888@XS%%SS@@88888.:;t%S8X + :t%X8888@@:8888 S@888888XXS%t;tSX88888@@t;t%S@8 + :;t%S@88t%%% ;8888@@@SS%%t;;:::;8@88@XX @%X@8 + . :;t%S:....8@@@XSSS%%tt;:::....S8@8XS X S@8 + :. .:@t%;:.8%%%%ttt;;:::.... ;SXS X 8S + t:. 88X@8@;;;;;;;:::... ..:.:8 X S8 + 8X@88X%::.::::... ...:::;tt;. .S8 + 88X:.:.........::::;;;tt%%SS@;8@ + 8SS%tt;;;;;;t;tttt%%SSX@88X + @@XXSSSSSSSSXX@@888@ + @@8888XS}|) + +(define colors + '([a "000" "00a"] + [b "000" "555"] + [c "000" "a00"] + [d "00a" "000"] + [e "00a" "555"] + [f "00a" "55f"] + [g "0aa" "555"] + [h "555" "000"] + [i "555" "00a"] + [j "555" "a00"] + [k "555" "aaa"] + [l "55f" "00a"] + [m "55f" "aaa"] + [n "a00" "000"] + [o "a00" "555"] + [p "a00" "f55"] + [q "a0a" "555"] + [r "a0a" "55f"] + [s "a0a" "a00"] + [t "a0a" "aaa"] + [u "a0a" "f55"] + [v "a50" "555"] + [w "a50" "a00"] + [x "a50" "aaa"] + [y "a50" "f55"] + [z "aaa" "555"] + [0 "aaa" "f55"] + [1 "aaa" "fff"] + [2 "f55" "a00"] + [3 "f55" "aaa"] + [4 "f5f" "f55"] + [5 "fff" "aaa"])) + +(define color-matrix + @list|{ + ifllll + qktx555155kflllllllg + 2pppppppp5111155fllllllllll + pppppppppppp511111kffllllllllllv + ppppppppppppppp1111115ffllllllllllla + jpppppppppppppppp0111111rfflllllllllliaa + ppppppppppppppppppp1111111ffllllllllllllaa + pppppppppppppppppppp11111115ffllllllllllliaa + ppppppppppppppppppppp11111111mfflllllllllllaaa + pppppppppppppppppppppp111111115fflllllllllllaaaa + 2ppppppppppppppppppppp31111111115flllllllllllaaaaa + pppppppppppppppppppppp115p1111111kfllllllllllaaaaa + 2ppppppppppppppppppppp111ppp1111155fllllllllllaaaaaa + 2pppppppppppppppppppp511ppppp1111555ifllllllllaaaaaa + 2ppppppppppppppppppp3114pppppp111555kllllllllaaaaaaa + 2pppppppppppppppppp3113pppppppp155555qfllllllaaaaaaa + 2ppppppppppppppppp0111pppppppppk155555illllliaaaaaaa + 22ppppppppppppppp3111ppppppppppp555kkkklillaaaaaaaaa + 222ppppppppppppp01113pppppppppppp5kkkkkklilaaaaaaaaa + 2222ppppppppppp01111pppppppppp222kkkkkkkqliaaaaaaaad + 2222pppppppppp1111ppppppppp222222kkkkkkkqlaaaaaaaa + 22222pppppppu1111yppppppp22222222okkkkkzkiiaaaaaad + 222222ppppy1511kppppp222222222222zkkzzzzziaaaaad + 22222222255555p22222222222222222skzzzzzzgiaaad + c2222225555k222222222222222222w2okzzzzgzgaad + cc222zkkkkqp222222222222222jjjwjzzzqzqqved + ccjqkkkkk222222222222222wjcccccjqzqqqqbh + ozzzzzj2j2j2j2j2w22jccccccccccqvqqbh + ojjjccccjcccccccccccccccccccjgbh + cccccccccccccccccccccccccnn + cccccccccccccccccnnn + nncnnnnn}|) diff --git a/collects/meta/web/minis/main.rkt b/collects/meta/web/minis/main.rkt index 53bde7ef66..e86c10e1b7 100644 --- a/collects/meta/web/minis/main.rkt +++ b/collects/meta/web/minis/main.rkt @@ -1,3 +1,3 @@ #lang at-exp s-exp "../common.rkt" -(require "lists.rkt" "bugs.rkt") +(require "lists.rkt" "bugs.rkt" "drracket.rkt")