summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/guile/skribilo.scm4
-rw-r--r--src/guile/skribilo/ast.scm2
-rw-r--r--src/guile/skribilo/engine/base.scm8
-rw-r--r--src/guile/skribilo/engine/html.scm6
-rw-r--r--src/guile/skribilo/engine/lout.scm2
-rw-r--r--src/guile/skribilo/evaluator.scm3
-rw-r--r--src/guile/skribilo/package/slide.scm4
-rw-r--r--src/guile/skribilo/skribe/api.scm4
8 files changed, 22 insertions, 11 deletions
diff --git a/src/guile/skribilo.scm b/src/guile/skribilo.scm
index 285a92d..f683080 100644
--- a/src/guile/skribilo.scm
+++ b/src/guile/skribilo.scm
@@ -92,7 +92,7 @@ specifications."
    (skribe-bib-path-set! (cons path (skribe-bib-path))))
   (("source-path" :alternate "S" :arg path :help "adds <path> to source path")
    (skribe-source-path-set! (cons path (skribe-source-path))))
-  (("P" :arg path :help "adds <path> to image path")
+  (("image-path" :alternate "P" :arg path :help "adds <path> to image path")
    (skribe-image-path-set! (cons path (skribe-image-path))))
   (("split-chapters" :alternate "C" :arg chapter
     :help "emit chapter's sections in separate files")
@@ -396,6 +396,7 @@ Processes a Skribilo/Skribe source file and produces its output.
 	 (load-path         (option-ref options 'load-path "."))
 	 (bib-path          (option-ref options 'bib-path "."))
 	 (source-path       (option-ref options 'source-path "."))
+	 (image-path        (option-ref options 'image-path "."))
 	 (preload           '())
 	 (variants          '())
 
@@ -426,6 +427,7 @@ Processes a Skribilo/Skribe source file and produces its output.
 		   (*source-path*    (cons source-path
 					   (append %load-path
 						   (*source-path*))))
+		   (*image-path*     (cons image-path (*image-path*)))
 		   (*warning*        (string->number warning-level))
 		   (*verbose*        (let ((v (option-ref options
 							  'verbose 0)))
diff --git a/src/guile/skribilo/ast.scm b/src/guile/skribilo/ast.scm
index ab56442..ff61ff7 100644
--- a/src/guile/skribilo/ast.scm
+++ b/src/guile/skribilo/ast.scm
@@ -24,7 +24,7 @@
   :autoload (skribilo location) (location?)
   :use-module (skribilo utils syntax)
   :export (<ast> ast? ast-loc ast-loc-set!
-		 ast-parent ast->string
+		 ast-parent ast->string ast->file-location
 
 	   <command> command? command-fmt command-body
 	   <unresolved> unresolved? unresolved-proc
diff --git a/src/guile/skribilo/engine/base.scm b/src/guile/skribilo/engine/base.scm
index ed15da4..1d04e1d 100644
--- a/src/guile/skribilo/engine/base.scm
+++ b/src/guile/skribilo/engine/base.scm
@@ -418,14 +418,18 @@
 		     (t (cond
 			   ((null? ie)
 			    "")
+			   ;; 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.
 			   ((or (not (integer? nc)) (= nc 1))
 			    (table :width 100.
-			       :&skribe-eval-location loc
+			       ;;:&skribe-eval-location loc
 			       :class "index-table"
 			       (make-column ie pref)))
 			   (else
 			    (table :width 100.
-			       :&skribe-eval-location loc
+			       ;;:&skribe-eval-location loc
 			       :class "index-table"
 			       (make-sub-tables ie nc pref))))))
 		 (output (skribe-eval t e) e))))
diff --git a/src/guile/skribilo/engine/html.scm b/src/guile/skribilo/engine/html.scm
index 5165258..1ad86e9 100644
--- a/src/guile/skribilo/engine/html.scm
+++ b/src/guile/skribilo/engine/html.scm
@@ -531,7 +531,7 @@
 ;*---------------------------------------------------------------------*/
 ;*    html-width ...                                                   */
 ;*---------------------------------------------------------------------*/
-(define (html-width width)
+(define-public (html-width width)
    (cond
       ((and (integer? width) (exact? width))
        (format #f "~A" width))
@@ -545,7 +545,7 @@
 ;*---------------------------------------------------------------------*/
 ;*    html-class ...                                                   */
 ;*---------------------------------------------------------------------*/
-(define (html-class m)
+(define-public (html-class m)
    (if (markup? m)
        (let ((c (markup-class m)))
 	  (if (or (string? c) (symbol? c) (number? c))
@@ -926,7 +926,7 @@
 ;*---------------------------------------------------------------------*/
 ;*    html-title-authors ...                                           */
 ;*---------------------------------------------------------------------*/
-(define (html-title-authors authors e)
+(define-public (html-title-authors authors e)
    (define (html-authorsN authors cols first)
       (define (make-row authors . opt)
 	 (tr (map (lambda (v)
diff --git a/src/guile/skribilo/engine/lout.scm b/src/guile/skribilo/engine/lout.scm
index d01b547..c2339ca 100644
--- a/src/guile/skribilo/engine/lout.scm
+++ b/src/guile/skribilo/engine/lout.scm
@@ -876,7 +876,7 @@
 ;*    lout-width ...                                                   */
 ;*---------------------------------------------------------------------*/
 (define (lout-width width)
-   (cond ((flonum? width) ;; a relative size
+   (cond ((inexact? width) ;; a relative size (XXX: was `flonum?')
 	  ;; FIXME: Hack ahead: assuming A4 with a 2.5cm margin
 	  ;; on both sides
 	  (let* ((orientation (let ((lout (find-engine 'lout)))
diff --git a/src/guile/skribilo/evaluator.scm b/src/guile/skribilo/evaluator.scm
index df5e6a7..b47f821 100644
--- a/src/guile/skribilo/evaluator.scm
+++ b/src/guile/skribilo/evaluator.scm
@@ -118,7 +118,8 @@
 ;; List of the names of files already loaded.
 (define *loaded-files* (make-parameter '()))
 
-(define* (load-document file :key (engine #f) (path #f) :rest opt)
+(define* (load-document file :key (engine #f) (path #f) :allow-other-keys
+			:rest opt)
   (with-debug 4 'skribe-load
      (debug-item "  engine=" engine)
      (debug-item "  path=" path)
diff --git a/src/guile/skribilo/package/slide.scm b/src/guile/skribilo/package/slide.scm
index f5f0011..ddbbd1d 100644
--- a/src/guile/skribilo/package/slide.scm
+++ b/src/guile/skribilo/package/slide.scm
@@ -9,7 +9,9 @@
 ;*    Skribe style for slides                                          */
 ;*=====================================================================*/
 
-(define-skribe-module (skribilo package slide))
+(define-skribe-module (skribilo package slide)
+  :autoload (skribilo engine html) (html-width html-title-authors))
+
 
 ;*---------------------------------------------------------------------*/
 ;*    slide-options                                                    */
diff --git a/src/guile/skribilo/skribe/api.scm b/src/guile/skribilo/skribe/api.scm
index c9606a0..2cd8b2e 100644
--- a/src/guile/skribilo/skribe/api.scm
+++ b/src/guile/skribilo/skribe/api.scm
@@ -102,7 +102,8 @@
 		    opts
 		    #!key
 		    (ident #f) (class "toc")
-		    (chapter #t) (section #t) (subsection #f))
+		    (chapter #t) (section #t) (subsection #f)
+		    (subsubsection #f))
    (let ((body (the-body opts)))
       (new container
 	 (markup 'toc)
@@ -112,6 +113,7 @@
 	 (options `((:chapter ,chapter)
 		    (:section ,section)
 		    (:subsection ,subsection)
+		    (:subsubsection ,subsubsection)
 		    ,@(the-options opts :ident :class)))
 	 (body (cond
 		  ((null? body)