;;; packages.el --- org-noter layer packages file for Spacemacs. ;; ;; Copyright (c) 2012-2022 Sylvain Benner & Contributors ;; ;; Author: ;; URL: https://github.com/syl20bnr/spacemacs ;; ;; This file is not part of GNU Emacs. ;; ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; See the Spacemacs documentation and FAQs for instructions on how to implement ;; a new layer: ;; ;; SPC h SPC layers RET ;; ;; ;; Briefly, each package to be installed or configured by this layer should be ;; added to `org-noter-packages'. Then, for each package PACKAGE: ;; ;; - If PACKAGE is not referenced by any other Spacemacs layer, define a ;; function `org-noter/init-PACKAGE' to load and initialize the package. ;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so ;; define the functions `org-noter/pre-init-PACKAGE' and/or ;; `org-noter/post-init-PACKAGE' to customize the package as it is loaded. ;;; Code: (defconst org-noter-packages '(org-pdftools org-noter org-noter-pdftools org-roam-bibtex) "The list of Lisp packages required by the org-noter layer. Each entry is either: 1. A symbol, which is interpreted as a package to be installed, or 2. A list of the form (PACKAGE KEYS...), where PACKAGE is the name of the package to be installed or loaded, and KEYS are any number of keyword-value-pairs. The following keys are accepted: - :excluded (t or nil): Prevent the package from being loaded if value is non-nil - :location: Specify a custom installation location. The following values are legal: - The symbol `elpa' (default) means PACKAGE will be installed using the Emacs package manager. - The symbol `local' directs Spacemacs to load the file at `./local/PACKAGE/PACKAGE.el' - A list beginning with the symbol `recipe' is a melpa recipe. See: https://github.com/milkypostman/melpa#recipe-format") (defun org-noter/post-init-org-pdftools () (use-package org-pdftools :hook (org-load . org-pdftools-setup-link))) (defun org-noter/init-org-noter () (use-package org-noter :after (:any org pdf-view) :custom (org-noter-always-create-frame nil))) (defun org-noter/init-org-noter-pdftools () (use-package org-noter-pdftools :after org-noter :config (with-eval-after-load 'pdf-annot (add-hook 'pdf-annot-activate-handler-functions #'org-noter-pdftools-jump-to-note)))) (defun org-noter/post-init-org-roam-bibtex () (orb-preformat-keywords '("citekey" "title" "url" "author-or-editor" "keywords" "file")) (orb-process-file-keyword t) (orb-file-field-extensions '("pdf" "epub" "html")) (orb-templates '(("r" "ref" plain (function org-roam-capture--get-point) "" :file-name "${citekey}" :head "#+TITLE: ${citekey}: ${title} #+ROAM_KEY: ${ref} - tags :: - keywords :: ${keywords} * ${title} :PROPERTIES: :Custom_ID: ${citekey} :URL: ${url} :AUTHOR: ${author-or-editor} :NOTER_DOCUMENT: ${file} :NOTER_PAGE: :END:"))))