hyper-literate/collects/scribble/private/manual-tech.ss
Matthew Flatt 5a7821c879 split scribble/manual module into smaller modules
svn: r12150

original commit: ea659ba286fc5c1fda44a89d10c137473e46e8da
2008-10-28 01:40:51 +00:00

39 lines
1.1 KiB
Scheme

#lang scheme/base
(require "../decode.ss"
"../struct.ss"
"../basic.ss"
"manual-utils.ss"
"manual-style.ss")
(provide deftech tech techlink)
(define (*tech make-elem style doc s)
(let* ([c (decode-content s)]
[s (string-foldcase (content->string c))]
[s (regexp-replace #rx"ies$" s "y")]
[s (regexp-replace #rx"s$" s "")]
[s (regexp-replace* #px"[-\\s]+" s " ")])
(make-elem style c (list 'tech (doc-prefix doc s)))))
(define (deftech . s)
(let* ([e (apply defterm s)]
[t (*tech make-target-element #f #f (list e))])
(make-index-element #f
(list t)
(target-element-tag t)
(list (clean-up-index-string (element->string e)))
(list e)
'tech)))
(define (tech #:doc [doc #f] . s)
(*tech (lambda (style c tag)
(make-link-element
style
(list (make-element "techinside" c))
tag))
"techoutside"
doc s))
(define (techlink #:doc [doc #f] . s)
(*tech make-link-element #f doc s))