pkg update and first config fix
org-brain not working, add org-roam
This commit is contained in:
@@ -67,23 +67,27 @@ MODE is either `bib' or `cite', RENDER-MODE is `display' or `sort'."
|
||||
(defun citeproc-var-value (var context &optional form)
|
||||
"Return the value of csl variable VAR in CONTEXT.
|
||||
VAR is a symbol, CONTEXT is a `citeproc-context' struct, and the
|
||||
optional FORM can be nil, 'short or 'long."
|
||||
(if (eq form 'short)
|
||||
(-if-let* ((short-var (alist-get var citeproc--short-long-var-alist))
|
||||
(short-var-val (alist-get short-var (citeproc-context-vars context))))
|
||||
short-var-val
|
||||
(alist-get var (citeproc-context-vars context)))
|
||||
(let ((var-val (alist-get var (citeproc-context-vars context))))
|
||||
(if (and var-val (or (and (eq var 'locator)
|
||||
(string= (citeproc-var-value 'label context) "page"))
|
||||
(eq var 'page)))
|
||||
(let ((prange-format (citeproc-lib-intern (alist-get 'page-range-format
|
||||
(citeproc-context-opts context))))
|
||||
(sep (or (citeproc-term-text-from-terms "page-range-delimiter"
|
||||
(citeproc-context-terms context))
|
||||
"–")))
|
||||
(citeproc-prange-render var-val prange-format sep))
|
||||
var-val))))
|
||||
optional FORM can be nil, `short' or `long'."
|
||||
(let ((var-vals (citeproc-context-vars context)))
|
||||
(if (or (eq form 'short)
|
||||
;; Also use the short form of title when the cite contains the
|
||||
;; (use-short-title . t) pair. This is used for title-only citations.
|
||||
(and (eq var 'title) (alist-get 'use-short-title var-vals)))
|
||||
(-if-let* ((short-var (alist-get var citeproc--short-long-var-alist))
|
||||
(short-var-val (alist-get short-var var-vals)))
|
||||
short-var-val
|
||||
(alist-get var var-vals))
|
||||
(let ((var-val (alist-get var var-vals)))
|
||||
(if (and var-val (or (and (eq var 'locator)
|
||||
(string= (citeproc-var-value 'label context) "page"))
|
||||
(eq var 'page)))
|
||||
(let ((prange-format (citeproc-lib-intern (alist-get 'page-range-format
|
||||
(citeproc-context-opts context))))
|
||||
(sep (or (citeproc-term-text-from-terms "page-range-delimiter"
|
||||
(citeproc-context-terms context))
|
||||
"–")))
|
||||
(citeproc-rt-from-str (citeproc-prange-render var-val prange-format sep)))
|
||||
var-val)))))
|
||||
|
||||
(defun citeproc-locator-label (context)
|
||||
"Return the current locator label variable from CONTEXT."
|
||||
@@ -103,8 +107,8 @@ optional FORM can be nil, 'short or 'long."
|
||||
|
||||
(defun citeproc-rt-textcased (rts case context)
|
||||
"Return rich-text content RTS in text-case CASE using CONTEXT.
|
||||
CASE is one of the following: 'lowercase, 'uppercase,
|
||||
'capitalize-first, 'capitalize-all, 'sentence, 'title."
|
||||
CASE is one of the following: `lowercase', `uppercase',
|
||||
`capitalize-first', `capitalize-all', `sentence', `title'."
|
||||
(pcase case
|
||||
('uppercase
|
||||
(citeproc-rt-map-strings #'upcase rts t))
|
||||
@@ -203,6 +207,23 @@ TYPED RTS is a list of (RICH-TEXT . TYPE) pairs"
|
||||
(citeproc-term-gender match)
|
||||
nil))
|
||||
|
||||
(defun citeproc-context-int-link-attrval (style internal-links mode cite-pos)
|
||||
"Return an appropriate attribute to represent internal linking info.
|
||||
INTERNAL-LINKS is the internal linking mode, see the
|
||||
documentation of `citeproc-render-varlist-in-rt', while MODE is
|
||||
the rendering mode, `bib' or `cite', and CITE-POS is a cite
|
||||
position. Returns an appropriate attribute to be added or nil if
|
||||
no internal links should be produced."
|
||||
(let ((note-style (citeproc-style-cite-note style)))
|
||||
(unless (or (and internal-links (not (memq internal-links '(auto bib-links))))
|
||||
(and note-style (eq mode 'bib) (or (null internal-links)
|
||||
(eq internal-links 'auto))))
|
||||
(if (and note-style (not (eq internal-links 'bib-links)))
|
||||
;; For note styles link subsequent cites to the first ones.
|
||||
(if (eq cite-pos 'first) 'bib-item-no 'cited-item-no)
|
||||
;; Else link each cite to the corresponding bib item.
|
||||
(if (eq mode 'cite) 'cited-item-no 'bib-item-no)))))
|
||||
|
||||
(defun citeproc-render-varlist-in-rt (var-alist style mode render-mode &optional
|
||||
internal-links no-external-links)
|
||||
"Render an item described by VAR-ALIST with STYLE in rich-text.
|
||||
@@ -237,25 +258,16 @@ external links."
|
||||
(concat (alist-get var citeproc--link-prefix-alist
|
||||
"")
|
||||
(alist-get var var-alist))))))
|
||||
;; Add appropriate item-no information
|
||||
(let ((note-style (citeproc-style-cite-note style)))
|
||||
(unless (or (and internal-links (not (memq internal-links '(auto bib-links))))
|
||||
(and note-style (eq mode 'bib) (or (null internal-links)
|
||||
(eq internal-links 'auto))))
|
||||
(let* ((itemid-attr
|
||||
(if (and note-style (not (eq internal-links 'bib-links)))
|
||||
;; For note styles link subsequent cites to the first ones
|
||||
(if (eq (alist-get 'position var-alist) 'first)
|
||||
'bib-item-no
|
||||
'cited-item-no)
|
||||
;; Else link each cite to the corresponding bib item
|
||||
(if (eq mode 'cite) 'cited-item-no 'bib-item-no)))
|
||||
(itemid-attr-val (cons itemid-attr
|
||||
(alist-get 'citation-number var-alist))))
|
||||
(cond ((consp rendered) (setf (car rendered)
|
||||
(-snoc (car rendered) itemid-attr-val)))
|
||||
((stringp rendered) (setq rendered
|
||||
(list (list itemid-attr-val) rendered)))))))
|
||||
;; Add appropriate item-no information
|
||||
(when-let* ((cite-no-attr
|
||||
(citeproc-context-int-link-attrval
|
||||
style internal-links mode (alist-get 'position var-alist)))
|
||||
(cite-no-attr-val (cons cite-no-attr
|
||||
(alist-get 'citation-number var-alist))))
|
||||
(cond ((consp rendered) (setf (car rendered)
|
||||
(-snoc (car rendered) cite-no-attr-val)))
|
||||
((stringp rendered) (setq rendered
|
||||
(list (list cite-no-attr-val) rendered)))))
|
||||
;; Add year-suffix if needed
|
||||
(-if-let (year-suffix (alist-get 'year-suffix var-alist))
|
||||
(car (citeproc-rt-add-year-suffix
|
||||
|
||||
Reference in New Issue
Block a user