aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo/engine/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/guile/skribilo/engine/base.scm')
-rw-r--r--src/guile/skribilo/engine/base.scm67
1 files changed, 39 insertions, 28 deletions
diff --git a/src/guile/skribilo/engine/base.scm b/src/guile/skribilo/engine/base.scm
index 711c179..9c1fdd2 100644
--- a/src/guile/skribilo/engine/base.scm
+++ b/src/guile/skribilo/engine/base.scm
@@ -19,17 +19,29 @@
;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
;;; USA.
-(define-skribe-module (skribilo engine base)
- :autoload (skribilo biblio template) (make-bib-entry-template/default
- output-bib-entry-template)
- :use-module (srfi srfi-13))
+(define-module (skribilo engine base)
+ :use-module (skribilo ast)
+ :use-module (skribilo engine)
+ :use-module (skribilo writer)
+ :autoload (skribilo output) (output)
+ :use-module (skribilo evaluator)
+ :autoload (skribilo package base) (color)
+ :autoload (skribilo utils keywords) (list-split)
+ :autoload (skribilo biblio template) (make-bib-entry-template/default
+ output-bib-entry-template)
+ ;; syntactic sugar
+ :use-module (skribilo reader)
+ :use-module (skribilo utils syntax))
+(fluid-set! current-reader (make-reader 'skribe))
+
+
;*---------------------------------------------------------------------*/
;* base-engine ... */
;*---------------------------------------------------------------------*/
(define base-engine
- (default-engine-set!
- (make-engine 'base
+ (default-engine-class-set!
+ (make-engine-class 'base
:version 'plain
:symbol-table '(("iexcl" "!")
("cent" "c")
@@ -170,20 +182,20 @@
(format #f "?~a " k))))
(msg (list f (markup-body n)))
(n (list "[" (color :fg "red" (bold msg)) "]")))
- (skribe-eval n e))))
+ (evaluate-document n e))))
;*---------------------------------------------------------------------*/
;* &the-bibliography ... */
;*---------------------------------------------------------------------*/
(markup-writer '&the-bibliography
:before (lambda (n e)
- (let ((w (markup-writer-get 'table e)))
+ (let ((w (markup-writer-get 'table (engine-class e))))
(and (writer? w) (invoke (writer-before w) n e))))
:action (lambda (n e)
(when (pair? (markup-body n))
(for-each (lambda (i) (output i e)) (markup-body n))))
:after (lambda (n e)
- (let ((w (markup-writer-get 'table e)))
+ (let ((w (markup-writer-get 'table (engine-class e))))
(and (writer? w) (invoke (writer-after w) n e)))))
;*---------------------------------------------------------------------*/
@@ -192,23 +204,28 @@
(markup-writer '&bib-entry
:options '(:title)
:before (lambda (n e)
- (invoke (writer-before (markup-writer-get 'tr e)) n e))
+ (invoke (writer-before (markup-writer-get 'tr
+ (engine-class e)))
+ n e))
:action (lambda (n e)
- (let ((wtc (markup-writer-get 'tc e)))
+ (let ((wtc (markup-writer-get 'tc (engine-class e))))
;; the label
(markup-option-add! n :valign 'top)
(markup-option-add! n :align 'right)
(invoke (writer-before wtc) n e)
- (output n e (markup-writer-get '&bib-entry-label e))
+ (output n e (markup-writer-get '&bib-entry-label
+ (engine-class e)))
(invoke (writer-after wtc) n e)
;; the body
(markup-option-add! n :valign 'top)
(markup-option-add! n :align 'left)
(invoke (writer-before wtc) n e)
- (output n e (markup-writer-get '&bib-entry-body))
+ (output n e (markup-writer-get '&bib-entry-body
+ (engine-class e)))
(invoke (writer-after wtc) n e)))
:after (lambda (n e)
- (invoke (writer-after (markup-writer-get 'tr e)) n e)))
+ (invoke (writer-after (markup-writer-get 'tr (engine-class e)))
+ n e)))
;*---------------------------------------------------------------------*/
;* &bib-entry-label ... */
@@ -234,7 +251,7 @@
(markup-writer '&bib-entry-url
:action (lambda (n e)
(let ((url (markup-body n)))
- (skribe-eval
+ (evaluate-document
(ref :text (it url) :url url) e))))
;*---------------------------------------------------------------------*/
@@ -258,7 +275,7 @@
;*---------------------------------------------------------------------*/
(markup-writer '&bib-entry-title
:action (lambda (n e)
- (skribe-eval (markup-body n)) e))
+ (evaluate-document (bold (markup-body n)) e)))
;*---------------------------------------------------------------------*/
;* &bib-entry-booktitle ... */
@@ -266,21 +283,21 @@
(markup-writer '&bib-entry-booktitle
:action (lambda (n e)
(let ((title (markup-body n)))
- (skribe-eval (it title) e))))
+ (evaluate-document (it title) e))))
;*---------------------------------------------------------------------*/
;* &bib-entry-journal ... */
;*---------------------------------------------------------------------*/
(markup-writer '&bib-entry-journal
:action (lambda (n e)
- (skribe-eval (it (markup-body n)) e)))
+ (evaluate-document (it (markup-body n)) e)))
;*---------------------------------------------------------------------*/
;* &bib-entry-publisher ... */
;*---------------------------------------------------------------------*/
(markup-writer '&bib-entry-publisher
:action (lambda (n e)
- (skribe-eval (markup-body n) e)))
+ (evaluate-document (it (markup-body n)) e)))
;*---------------------------------------------------------------------*/
;* &the-index ... @label the-index@ */
@@ -400,7 +417,7 @@
;;:&skribe-eval-location loc
:class "index-table"
(make-sub-tables ie nc pref))))))
- (output (skribe-eval t e) e))))
+ (output (evaluate-document t e) e))))
;*---------------------------------------------------------------------*/
;* &the-index-header ... */
@@ -418,7 +435,7 @@
:before (lambda (n e)
(let ((num (markup-option n :number)))
(if (number? num)
- (skribe-eval
+ (evaluate-document
(it (string-append (string-pad (number->string num) 3)
": "))
e))))
@@ -432,11 +449,5 @@
:action (lambda (n e)
(let ((o (markup-option n :offset))
(n (markup-ident (handle-body (markup-body n)))))
- (skribe-eval (it (if (integer? o) (+ o n) n)) e))))
-
-
+ (evaluate-document (it (if (integer? o) (+ o n) n)) e))))
-;;;; A VIRER (mais handle-body n'est pas défini)
-(markup-writer 'line-ref
- :options '(:offset)
- :action #f)