adjust para decoding to better work with @ notation
svn: r16220
This commit is contained in:
parent
4e35bda756
commit
83f9c99cf1
|
@ -120,7 +120,10 @@ among the @scheme[element]s are decoded by performing the following
|
||||||
substitutions: @litchar{---} @d=> @litchar["\u2014"], @litchar{--}
|
substitutions: @litchar{---} @d=> @litchar["\u2014"], @litchar{--}
|
||||||
@d=> @litchar["\u2013"], @litchar{``} @d=> @litchar["\u201C"],
|
@d=> @litchar["\u2013"], @litchar{``} @d=> @litchar["\u201C"],
|
||||||
@litchar{''} @d=> @litchar["\u201D"], @litchar{'} @d=>
|
@litchar{''} @d=> @litchar["\u201D"], @litchar{'} @d=>
|
||||||
@litchar["\u2019"].
|
@litchar["\u2019"]. In addition, to better work with
|
||||||
|
@schememodname[at-exp] notation, if an @scheme[element] is @scheme["\n"],
|
||||||
|
then it is dropped along with any spaces at the start of the next
|
||||||
|
element.
|
||||||
|
|
||||||
Strings are split at spaces for word-wrapping to fit the page, and a
|
Strings are split at spaces for word-wrapping to fit the page, and a
|
||||||
space is added between elements. If a string element starts with one
|
space is added between elements. If a string element starts with one
|
||||||
|
|
|
@ -669,7 +669,7 @@
|
||||||
[else vl-append])
|
[else vl-append])
|
||||||
width
|
width
|
||||||
(if decode?
|
(if decode?
|
||||||
(map decode s)
|
(decode s)
|
||||||
s))])
|
s))])
|
||||||
(if fill?
|
(if fill?
|
||||||
((case align
|
((case align
|
||||||
|
@ -684,7 +684,23 @@
|
||||||
(define (decode s)
|
(define (decode s)
|
||||||
(let loop ([s s])
|
(let loop ([s s])
|
||||||
(cond
|
(cond
|
||||||
[(list? s) (map loop s)]
|
[(list? s)
|
||||||
|
(map
|
||||||
|
decode
|
||||||
|
;; Remove "\n", and also cancel extra spaces after "\n":
|
||||||
|
(let loop ([s s])
|
||||||
|
(cond
|
||||||
|
[(null? s) null]
|
||||||
|
[(equal? (car s) "\n")
|
||||||
|
(let nloop ([s (cdr s)])
|
||||||
|
(if (and (pair? s)
|
||||||
|
(string? (car s)))
|
||||||
|
(let ([a (regexp-replace #rx"^ +" (car s) "")])
|
||||||
|
(if (string=? a "")
|
||||||
|
(nloop (cdr s))
|
||||||
|
(loop (cons a (cdr s)))))
|
||||||
|
(loop s)))]
|
||||||
|
[else (cons (car s) (loop (cdr s)))])))]
|
||||||
[(not (string? s)) s]
|
[(not (string? s)) s]
|
||||||
[(regexp-match-positions #rx"---" s)
|
[(regexp-match-positions #rx"---" s)
|
||||||
=> (lambda (m)
|
=> (lambda (m)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user