summaryrefslogtreecommitdiff
path: root/doc/skr/api.skr
diff options
context:
space:
mode:
authorLudovic Courtes2006-01-16 22:33:10 +0000
committerLudovic Courtes2006-01-16 22:33:10 +0000
commit36a235bc558321245eb410633c314b03e5bb9f81 (patch)
tree56d287670d9ce43285e8e961f9f443dd74751317 /doc/skr/api.skr
parentf66ef36a1c5a8c28e6a95ec9f6b19e20e914e42a (diff)
parent2d8fa88ef04b3a6141a2b03a9671a7dd0fcc1f60 (diff)
downloadskribilo-36a235bc558321245eb410633c314b03e5bb9f81.tar.gz
skribilo-36a235bc558321245eb410633c314b03e5bb9f81.tar.lz
skribilo-36a235bc558321245eb410633c314b03e5bb9f81.zip
More SRFI-3[45] enhancements; first stab at the user documentation.
* src/guile/skribilo/biblio.scm (skribe-open-bib-file): Raise a `&file-search-error' when needed. * src/guile/skribilo/runtime.scm (convert-image): Likewise. * src/guile/skribilo/source.scm (source-read-lines): Likewise. (source-read-definition): Likewise. * src/guile/skribilo/utils/compat.scm (skribe-load): Only look up `%skribe-known-files' when `load-document' failed. (find-file/path): Use `search-path'. (find-runtime-type): Implemented. * doc/skr/api.skr: Use `(ice-9 match)'. Use `match' instead of `match-case'. (api-search-definition): Search in `%load-path' and `(skribe-path)'. (define-markup?): First stab at getting the `match' syntax right. * doc/user/src/start[3-5].skb: Small fixes. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-28
Diffstat (limited to 'doc/skr/api.skr')
-rw-r--r--doc/skr/api.skr31
1 files changed, 18 insertions, 13 deletions
diff --git a/doc/skr/api.skr b/doc/skr/api.skr
index 504dd5a..70016b9 100644
--- a/doc/skr/api.skr
+++ b/doc/skr/api.skr
@@ -9,6 +9,8 @@
;* The Skribe style for documenting Lisp APIs. */
;*=====================================================================*/
+(use-modules (ice-9 match))
+
;*---------------------------------------------------------------------*/
;* Html configuration */
;*---------------------------------------------------------------------*/
@@ -59,11 +61,13 @@
;* Find a definition inside a source file. */
;*---------------------------------------------------------------------*/
(define (api-search-definition id file pred)
- (let ((f (find-file/path file *skribe-source-path*)))
+ (let* ((path (append %load-path (skribe-path)))
+ (f (find-file/path file path)))
(if (not (string? f))
(skribe-error 'api-search-definition
- (format #t "can't find source file `~a' in path" file)
- *skribe-source-path*)
+ (format #f "can't find source file `~a' in path"
+ file)
+ path)
(with-input-from-file f
(lambda ()
(let loop ((exp (read)))
@@ -104,9 +108,10 @@
;* define-markup? ... */
;*---------------------------------------------------------------------*/
(define (define-markup? id o)
- (match-case o
- (((or define-markup define define-inline)
- ((? (lambda (x) (eq? x id))) . (? (lambda (x) (or (pair? x) (null? x))))) . ?-)
+ (match o
+ ((or 'define-markup 'define 'define-inline
+ (? (lambda (x) (eq? x id)))
+ (? (lambda (x) (or (pair? x) (null? x)))))
o)
((define-simple-markup (? (lambda (x) (eq? x id))))
o)
@@ -119,7 +124,7 @@
;* make-engine? ... */
;*---------------------------------------------------------------------*/
(define (make-engine? id o)
- (match-case o
+ (match o
(((or make-engine copy-engine) (quote (? (lambda (x) (eq? x id)))) . ?-)
o)
((quasiquote . ?-)
@@ -135,7 +140,7 @@
;* make-engine-custom ... */
;*---------------------------------------------------------------------*/
(define (make-engine-custom def)
- (match-case (memq :custom def)
+ (match (memq :custom def)
((:custom (quote ?custom) . ?-)
custom)
((:custom ?custom . ?-)
@@ -150,7 +155,7 @@
;* options). */
;*---------------------------------------------------------------------*/
(define (define-markup-formals def)
- (match-case def
+ (match def
((?- (?- . ?args) . ?-)
(if (symbol? args)
(list args)
@@ -180,7 +185,7 @@
;* Returns the options parameters of a define-markup. */
;*---------------------------------------------------------------------*/
(define (define-markup-options def)
- (match-case def
+ (match def
((?- (?- . ?args) . ?-)
(if (not (list? args))
'()
@@ -203,7 +208,7 @@
;* Returns the rest parameter of a define-markup. */
;*---------------------------------------------------------------------*/
(define (define-markup-rest def)
- (match-case def
+ (match def
((?- (?- . ?args) . ?-)
(if (not (pair? args))
args
@@ -270,7 +275,7 @@
(table :cellpadding 0 :cellspacing 0
(tr (td :align 'left exp))))
(else
- (match-case exp
+ (match exp
((quote (and ?sym (? symbol?)))
(string-append "'" (symbol->string sym)))
(else
@@ -319,7 +324,7 @@
(idx *markup-index*)
(idx-note "definition")
(idx-suffix #f)
- (source "src/common/api.scm")
+ (source "skribilo/skribe/api.scm")
(def #f)
(see-also '())
(others '())