]> git.donarmstrong.com Git - org-ref.git/blobdiff - doi-utils.org
save buffer after replacing non-ascii
[org-ref.git] / doi-utils.org
index 900d12b217dc0d121d081cf52ffbe251b2959672..442aaa7e91aae7adad83ac1eeeaf30f5b7587388 100644 (file)
@@ -487,7 +487,7 @@ Next, we need to define the different bibtex types. Each type has a bibtex type
 #+BEGIN_SRC emacs-lisp :tangle doi-utils.el :results none
 (setq doi-utils-bibtex-type-generators nil)
 
-(defun concat-prepare (lst &optional acc)
+(defun doi-utils-concat-prepare (lst &optional acc)
   "Given a list `lst' of strings and other expressions, which are
 intented to passed to `concat', concat any subsequent strings,
 minimising the number of arguments being passed to `concat'
@@ -495,10 +495,9 @@ without changing the results."
   (cond ((null lst) (nreverse acc))
         ((and (stringp (car lst))
               (stringp (car acc)))
-         (concat-prepare (cdr lst) (cons (concat (car acc) (car lst))
+         (doi-utils-concat-prepare (cdr lst) (cons (concat (car acc) (car lst))
                                          (cdr acc))))
-        (t (concat-prepare (cdr lst) (cons (car lst) acc)))))
-
+        (t (doi-utils-concat-prepare (cdr lst) (cons (car lst) acc)))))
 
 (defmacro doi-utils-def-bibtex-type (name matching-types &rest fields)
   "Define a BibTeX type identified by (symbol) `name' with
@@ -516,7 +515,7 @@ when the `:type' parameter in the JSON metadata is contained in
                                    (error "unknown bibtex field type %s" field))))
                            fields)
                (concat
-                ,@(concat-prepare
+                ,@(doi-utils-concat-prepare
                    (-flatten
                     (list (concat "@" (symbol-name name) "{,\n")
                           ;; there seems to be some bug with mapcan,
@@ -535,17 +534,21 @@ when the `:type' parameter in the JSON metadata is contained in
 
 (doi-utils-def-bibtex-type book ("book")
                            author title series publisher year pages doi url)
+
+(doi-utils-def-bibtex-type inbook ("book-chapter")
+                           author title booktitle series publisher year pages doi url)
+
 #+END_SRC
 
 With the code generating the bibtex entry in place, we can glue it to the json retrieval code.
 #+BEGIN_SRC emacs-lisp :tangle doi-utils.el
 (defun doi-utils-doi-to-bibtex-string (doi)
-  "return a bibtex entry as a string for the doi. Only articles are currently supported"
+  "return a bibtex entry as a string for the doi. Not all types are supported yet."
   (let* ((results (doi-utils-get-json-metadata doi))
          (type (plist-get results :type)))
-    (format "%s" results) ; json-data
+    ;(format "%s" results) ; json-data
     (or (some (lambda (g) (funcall g type results)) doi-utils-bibtex-type-generators)
-        (message-box "%s not supported yet." type))))
+        (message "%s not supported yet\n%S." type results))))
 #+END_SRC
 
 #+RESULTS: