about summary refs log tree commit diff
path: root/src/guile/skribilo/package/base.scm
diff options
context:
space:
mode:
authorLudovic Court`es2007-05-04 13:47:41 +0000
committerLudovic Court`es2007-05-04 13:47:41 +0000
commitde80f75d76d16144ddd3929a09463df0a341846c (patch)
tree2a9710311c9de1998a12c2cebd21878cedb9afc7 /src/guile/skribilo/package/base.scm
parent3ee5b5750f0b0b29ca2ee13c3cb1f1c9cbe18e25 (diff)
parentf18224ad16296c276583368e9572bced7a57bb53 (diff)
downloadskribilo-de80f75d76d16144ddd3929a09463df0a341846c.tar.gz
skribilo-de80f75d76d16144ddd3929a09463df0a341846c.tar.lz
skribilo-de80f75d76d16144ddd3929a09463df0a341846c.zip
biblio: Implemented the `name+year' label style.
* src/guile/skribilo/biblio.scm: Use `biblio author'.
  (assign-entries-numbers!): New (formerly `count!' in `resolve-the-bib').
  (assign-entries-name+years!): New.
  (resolve-the-bib): New optional `assign-entries-identifiers!' argument.
  Use it.

* src/guile/skribilo/biblio/author.scm (short-author-names): New.

* src/guile/skribilo/engine/lout.scm (lout-bib-refs-sort/number): Accept
  non-number identifiers.
  (&the-bibliography): Use simply `@TaggedList' when a style other than
  `number' is used.
  (&bib-entry): Use `@DropTagItem' when the bibliography style is not
  `number'.

* src/guile/skribilo/package/base.scm (the-bibliography): New `:labels'
  option.  Pass the right label assignment function to `resolve-the-bib'.

--This line, and those below, will be ignored--
Files to commit:
   src/guile/skribilo/package/base.scm
   src/guile/skribilo/engine/lout.scm
   src/guile/skribilo/biblio.scm
   doc/user/bib.skb
   src/guile/skribilo/biblio/author.scm

This list might be incomplete or outdated if editing the log
message was not invoked from an up-to-date changes buffer!

git-archimport-id: skribilo@sv.gnu.org--2006/skribilo--devo--1.2--patch-92
Diffstat (limited to 'src/guile/skribilo/package/base.scm')
-rw-r--r--src/guile/skribilo/package/base.scm31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/guile/skribilo/package/base.scm b/src/guile/skribilo/package/base.scm
index 4725c06..3aae9bf 100644
--- a/src/guile/skribilo/package/base.scm
+++ b/src/guile/skribilo/package/base.scm
@@ -1326,20 +1326,29 @@
 				 pred
 				 (bib-table (*bib-table*))
 				 (sort bib-sort/authors)
-				 (count 'partial))
+				 (count 'partial)
+                                 (labels 'number))
    (if (not (memq count '(partial full)))
        (skribe-error 'the-bibliography
-		     "Cound must be either `partial' or `full'"
+		     "count must be either `partial' or `full'"
 		     count)
-       (new unresolved
-          (loc  &invocation-location)
-	  (proc (lambda (n e env)
-		   (resolve-the-bib bib-table
-				    (new handle (ast n))
-				    sort
-				    pred
-				    count
-				    (the-options opts)))))))
+       (let ((label-proc (case labels
+                           ((number)    assign-entries-numbers!)
+                           ((name+year) assign-entries-name+years!)
+                           (else
+                            (skribe-error
+                             'the-bibliography
+                             "invalid label type" lables)))))
+         (new unresolved
+            (loc  &invocation-location)
+            (proc (lambda (n e env)
+                     (resolve-the-bib bib-table
+                                      (new handle (ast n))
+                                      sort
+                                      pred
+                                      count
+                                      (the-options opts)
+                                      label-proc)))))))
 
 ;*---------------------------------------------------------------------*/
 ;*    make-index ...                                                   */