#lang racket ;; Realm of kludge: ;; ;; AFIK no way via Scribble to put something into the section. ;; ;; This reads all HTML files and injects some stuff immediately before the ;; closing tag. (define web-font "") (define ga-code #< var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-29709446-1']); _gaq.push(['_setDomainName', 'greghendershott.com']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); EOF ) (define (meta k v) (format "" k v)) (define metas (string-append (meta "keywords" "Racket,macros,Scheme") (meta "description" "Practical Racket macros") (meta "author" "Greg Hendershott") (meta "charset" "utf-8"))) (define "") (define all (string-append metas web-font ga-code )) (define subst (regexp-replace* "\n" all "")) ;minify (define (do-file path) (define old (file->string path)) (define new (regexp-replace old subst)) (with-output-to-file path (lambda () (display new)) #:mode 'text #:exists 'replace)) (require racket/runtime-path) (define-runtime-path here ".") (for ([path (find-files (lambda (path) (regexp-match? #rx"\\.html" path)) here)]) (do-file path))