aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo/package/base.scm
diff options
context:
space:
mode:
authorLudovic Court`es2007-08-20 16:01:30 +0000
committerLudovic Court`es2007-08-20 16:01:30 +0000
commitea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac (patch)
tree3ff725cbfd42cab7f112e7a30a4eb859366a8686 /src/guile/skribilo/package/base.scm
parent6e53232aaf3f3ec31678911643c1e1a9f04d6619 (diff)
downloadskribilo-ea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac.tar.gz
skribilo-ea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac.tar.lz
skribilo-ea87fc231d9eb30ac3dc5bb1d6933ae7862ed1ac.zip
Allow for user-specified section numbers.
* src/guile/skribilo/ast.scm: Use `srfi-13'. (markup-number-string): Made tail-recursive. Allow for non-number `:number' options. * src/guile/skribilo/package/base.scm (section-number): Allow non-number `:number' options to pass through. (chapter): Use `section-number'. git-archimport-id: lcourtes@laas.fr--2006-libre/skribilo--devo--1.2--patch-86
Diffstat (limited to 'src/guile/skribilo/package/base.scm')
-rw-r--r--src/guile/skribilo/package/base.scm33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/guile/skribilo/package/base.scm b/src/guile/skribilo/package/base.scm
index 872c1e2..9616080 100644
--- a/src/guile/skribilo/package/base.scm
+++ b/src/guile/skribilo/package/base.scm
@@ -174,6 +174,22 @@
(skribe-error 'toc "Illegal argument" body)))))))
;*---------------------------------------------------------------------*/
+;* section-number ... */
+;*---------------------------------------------------------------------*/
+(define (section-number number markup)
+ (cond ((not number)
+ ;; number-less
+ #f)
+ ((or (string? number) (list? number) (ast? number))
+ ;; user-specified number
+ number)
+ (else
+ ;; automatic numbering
+ (new unresolved
+ (proc (lambda (n e env)
+ (resolve-counter n env markup number)))))))
+
+;*---------------------------------------------------------------------*/
;* chapter ... ... */
;* ------------------------------------------------------------- */
;* doc: */
@@ -193,13 +209,7 @@
(loc &invocation-location)
(required-options '(:title :file :toc :number))
(options `((:toc ,toc)
- (:number ,(and number
- (new unresolved
- (proc (lambda (n e env)
- (resolve-counter n
- env
- 'chapter
- number))))))
+ (:number ,(section-number number 'chapter))
,@(the-options opts :ident :class)))
(body (the-body opts))
(env (list (list 'section-counter 0) (list 'section-env '())
@@ -207,15 +217,6 @@
(list 'equation-counter 0) (list 'equation-env '())))))
;*---------------------------------------------------------------------*/
-;* section-number ... */
-;*---------------------------------------------------------------------*/
-(define (section-number number markup)
- (and number
- (new unresolved
- (proc (lambda (n e env)
- (resolve-counter n env markup number))))))
-
-;*---------------------------------------------------------------------*/
;* section ... */
;* ------------------------------------------------------------- */
;* doc: */