New techreport pages.

This commit is contained in:
Eli Barzilay 2010-09-20 11:18:04 -04:00
parent 93bd86ccc4
commit 5b4c94649c
3 changed files with 124 additions and 25 deletions

View File

@ -20,6 +20,9 @@
(provide TT) (provide TT)
(define (TT . xs) (define (TT . xs)
@tt[style: "background-color: #dde;"]{@xs}) @tt[style: "background-color: #dde;"]{@xs})
(provide PRE)
(define (PRE . xs)
@pre[style: "background-color: #dde;"]{@xs})
;; some tags with convenient separators ;; some tags with convenient separators
(provide make-separated-tag (rename-out [the-separator ~]) (provide make-separated-tag (rename-out [the-separator ~])

View File

@ -1,6 +1,6 @@
#lang at-exp s-exp "shared.rkt" #lang at-exp s-exp "shared.rkt"
(require "people.rkt" racket/list) (require "people.rkt" "techreports.rkt" racket/list)
(provide learning) (provide learning)
(define learning (define learning
@ -87,8 +87,6 @@
live.} live.}
@p[align: 'right]{—@responsible-people}}) @p[align: 'right]{—@responsible-people}})
(require "techreports.rkt")
;; redirection page for the previous name of this page ;; redirection page for the previous name of this page
(define outreach+research (define outreach+research
@page[#:part-of 'learning @page[#:part-of 'learning

View File

@ -1,18 +1,108 @@
#lang at-exp s-exp "shared.rkt" #lang at-exp s-exp "shared.rkt"
(require "bib.rkt" (prefix-in - version/utils) racket/list (require "bib.rkt" (prefix-in - version/utils) racket/list racket/string
"people.rkt" "../download/data.rkt") "people.rkt" "../download/data.rkt")
;; New style TR entries -------------------------------------------------------
(define (-all-techreports-)
(list (TR 1 'reference "Reference: Racket" '(mflatt plt)
#:description "Racket Programming Language")
(TR 2 'drracket "DrRacket: Programming Environment" '(robby plt)
#:description "DrRacket API"
#:note
@list{
Preferred generic citation:
@blockquote[style: "margin-top: 0.5ex; margin-bottom: 0.5ex;"]{
R. B. Findler, J. Clements, C. Flanagan, M. Flatt,
S. Krishnamurthi, P. Steckler and M. Felleisen. @br
@i{DrScheme: A programming environment for Scheme.} @br
Journal of Functional Programming, 12(2): 159182, March 2002.}
Please cite the DrRacket technical report only if internal
details of DrRacket are concerned, otherwise use the DrScheme
reference.})
(TR 3 'gui "GUI: Racket Graphics Toolkit" '(mflatt robby clements)
#:description "Racket Graphics Toolkit")))
(define (doc-url doc [fmt 'html] [ver 'recent])
(format "http://download.racket-lang.org/docs/~a/~a/~a~a" ver fmt doc
(if (eq? 'html fmt) "" (format ".~a" fmt))))
(define (TR num docname title authors* #:description [desc title]
#:note [note #f])
(define tr-name @list{PLT-TR-2010-@num})
(define author-strings
(map (lambda (a) (if (eq? 'plt a) "PLT" (person-bibname (find-person a))))
authors*))
(define (link fmt [ver 'recent]) @a[href: (doc-url docname fmt ver)]{[@fmt]})
(define (title-line link?)
@list{@big{@b{@(if link? cite-page values){@tr-name}}}
@|nbsp nbsp| @small{@link['html] @link['pdf]}})
(define (content)
@list{@(add-between author-strings " and ") @br
@i{@title} @br
PLT Technical Report #@num @br
@(and note @div[style: "margin-top: 1ex; font-size: small;"]{
@note})})
(define ((refblock . title) . body)
@list{@h2{@title}
@blockquote{@PRE{@body}}})
(define cite-page
@page[#:file (format "tr~a/" num) #:title tr-name #:part-of 'learning]{
@h1{@title-line[#f]}
@p*{@blockquote{@big{@content}}
@~ For citations of the @desc, please use @TT{\cite{plt-tr@num}} in
LaTeX, or @TT|{@cite[plt-tr1]}| in Scribble, using the definitions
below.
@~ For references to specific releases and/or chapters, use
@TT{\cite[Version M.N]{plt-tr@num}} or
@TT|{@cite[(in-bib plt-tr1 "Version M.N")]}| instead. The year
in the bibliographic entry should be 2010 regardless of the
version's date.}
@@refblock{BibTeX}|{
@techreport{plt-tr1,
title = {|@title},
author = {|@(add-between author-strings " and ")},
number = {|@tr-name},
institution = {PLT Inc.},
year = {2010},
note = {\url{|@(get-resource-path cite-page #t)}}
}}|
@@refblock{Scribble}|{
(define plt-tr1
(make-bib #:title "|@title"
#:author |@(format "~s" (cons 'authors author-strings))
#:date "2010"
#:location (techrpt-location "|@tr-name")
#:url "|@(get-resource-path cite-page #t)"))}|
@h2{Specific Versions}
@blockquote{
@table[frame: 'box rules: 'rows cellpadding: 10]{
@(for/list ([v (remove-duplicates
(map installer-version all-installers))])
@tr{@td{@b{@v} @br @small{(@version->date[v])}}
@td{@TT{\cite[Version @v]{plt-tr@num}} @br
@TT|{@cite[(in-bib plt-tr1 "Version |@v")]}|}
@td{@link['html v], @link['pdf v]}})}
@p{@small{Reminder: the release dates should not be included in the
entry or the citation.}}}})
@list{@dt{@title-line[#t]}
@dd[style: "margin-bottom: 1.5ex;"]{
@content}})
(provide techreports) (provide techreports)
(define techreports (define techreports
@page[#:file "techreports/" #:part-of 'learning @page[#:file "tr/" #:title "PLT Technical Reports" #:part-of 'learning]{
#:title "Technical Reports"]{ @p*{
@p{PLT publishes technical reports about some of its tools and libraries so @~ For citations of generic pieces of the Racket infrastructure, please use
that scholars who wish to give proper credit to some of our innovations @TT{\cite{plt-tr1}}, @TT{\cite{plt-tr2}}, etc. in LaTeX, or
have a definite citation. Each entry below provides the full pdf and a @TT|{@cite[plt-tr1]}|, @TT|{@cite[plt-tr2]}|, etc. in Scribble, with the
bibtex entry; some of the bibtex entries provide additional citations to BibTeX and Scribble entries provided in the web pages below.
published papers.} @~ For references to specific releases and/or chapters of the language, use
@make-bib-table{}}) @TT{\cite[Version M.N]{plt-tr1}} or
@TT|{@cite[(in-bib plt-tr1 "Version M.N")]}|
instead.}
@dl{@(add-newlines (-all-techreports-))}})
;; Old style TR entries, for compatibility ------------------------------------ ;; Old style TR entries, for compatibility ------------------------------------
@ -257,8 +347,7 @@
(lambda () (person-bibname (find-person author))))]) (lambda () (person-bibname (find-person author))))])
(if (string? r) (if (string? r)
r r
(let ([r (apply string-append (let ([r (string-join (map author->string r) " and ")])
(add-between (map author->string r) " and "))])
(hash-set! authors* author r) (hash-set! authors* author r)
r)))) r))))
@ -321,14 +410,23 @@
(web-path "www" "techreports" file)) (web-path "www" "techreports" file))
file)) file))
(define (make-bib-table) (define old-techreports
(apply table width: "98%" cellspacing: 0 cellpadding: 6 border: 0 @page[#:file "techreports/" #:title "Old PLT Technical Reports"
align: 'center style: "font-size: 75%;" #:part-of 'learning]{
(for/list ([bib bibs] [n (in-naturals)]) @p{@strong{Note:} the entries on this page are outdated, please see the new
@tr[valign: 'top bgcolor: (if (even? n) "#e0e0e0" "white")]{ @techreports page.}
@td[style: "white-space: nowrap;"]{@(hash-ref bib 'number)} @p{PLT publishes technical reports about some of its tools and libraries so
@td[align: 'left]{@i{@(without-braces (hash-ref bib 'title))}} that scholars who wish to give proper credit to some of our innovations
@td{@(bib-author bib)} have a definite citation. Each entry below provides the full pdf and a
@td{@a[href: (make-bib-file bib)]{[bib]}@|nbsp|@; bibtex entry; some of the bibtex entries provide additional citations to
@a[href: (hash-ref bib '#:pdf-url)]{[pdf]}@|nbsp|@; published papers.}
@a[href: (hash-ref bib '#:html-url)]{[html]}}}))) @table[width: "98%" cellspacing: 0 cellpadding: 6 border: 0
align: 'center style: "font-size: 75%;"]{
@(for/list ([bib bibs] [n (in-naturals)])
@tr[valign: 'top bgcolor: (if (even? n) "#e0e0e0" "white")]{
@td[style: "white-space: nowrap;"]{@(hash-ref bib 'number)}
@td[align: 'left]{@i{@(without-braces (hash-ref bib 'title))}}
@td{@(bib-author bib)}
@td{@a[href: (make-bib-file bib)]{[bib]}@|nbsp|@;
@a[href: (hash-ref bib '#:pdf-url)]{[pdf]}@|nbsp|@;
@a[href: (hash-ref bib '#:html-url)]{[html]}}})}})