summaryrefslogtreecommitdiff
path: root/doc/skr
diff options
context:
space:
mode:
Diffstat (limited to 'doc/skr')
-rw-r--r--doc/skr/api.skr34
-rw-r--r--doc/skr/manual.skr8
2 files changed, 26 insertions, 16 deletions
diff --git a/doc/skr/api.skr b/doc/skr/api.skr
index 00c6a38..a86e745 100644
--- a/doc/skr/api.skr
+++ b/doc/skr/api.skr
@@ -121,16 +121,21 @@
;* make-engine? ... */
;*---------------------------------------------------------------------*/
(define (make-engine? id o)
+ ;(format #t "make-engine? ~a ~a~%" id o)
(match o
- (((or 'make-engine 'copy-engine)
- (quote (? (lambda (x) (eq? x id)))) _)
- o)
- ((`_)
- #f)
- ((_)
- #f)
- ((a d)
- (or (make-engine? id a) (make-engine? id d)))
+ (((or 'make-engine 'copy-engine) ('quote sym) . rest)
+ (if (eq? sym id)
+ o
+ #f))
+ ((exp ___)
+ (let loop ((exp exp))
+ (cond ((null? exp)
+ #f)
+ ((pair? exp)
+ (or (make-engine? id (car exp))
+ (make-engine? id (cdr exp))))
+ (else
+ (make-engine? id exp)))))
(else
#f)))
@@ -138,13 +143,14 @@
;* make-engine-custom ... */
;*---------------------------------------------------------------------*/
(define (make-engine-custom def)
- (match (memq :custom def)
- ((:custom `custom _)
+ (let ((customs (memq :custom def)))
+ (match (if customs (cdr customs) #f)
+ ((((or 'quote 'quasiquote) custom) _ ___)
custom)
- ((:custom custom _)
- (eval custom))
+ (((custom) _ ___)
+ (primitive-eval custom))
(else
- '())))
+ '()))))
(define (sym/kw? x)
(or (symbol? x) (keyword? x)))
diff --git a/doc/skr/manual.skr b/doc/skr/manual.skr
index 30b2fcd..e6b7d64 100644
--- a/doc/skr/manual.skr
+++ b/doc/skr/manual.skr
@@ -248,14 +248,18 @@
(nc (markup-option n :column))
(pref (eq? (engine-custom e 'index-page-ref) #t))
(loc (ast-loc n))
+ ;; FIXME: Since we don't support
+ ;; `:&skribe-eval-location', we could set up a
+ ;; `parameterize' thing around `skribe-eval' to provide
+ ;; it with the right location information.
(t (cond
((null? ie)
"")
((or (not (integer? nc)) (= nc 1))
- (table :width 100. :&skribe-eval-location loc
+ (table :width 100. ;;:&skribe-eval-location loc
(make-column ie pref)))
(else
- (table :width 100. :&skribe-eval-location loc
+ (table :width 100. ;;:&skribe-eval-location loc
(make-sub-tables ie nc pref))))))
(output (skribe-eval t e) e))))