dimalik / empos

Emacs Paper Online Search

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Emacs Paper Online Search

Emacs wrapper for pyopl (python online paper locator) to search and fetch scientific citations online and add them to a bib file.

Installation

Firstly, you need to have installed pyopl, preferably somewhere in your PATH (default - see below for manually specifying the path).

To try out the emacs wrapper, download the latest version of empos.el from github and add the following to your .emacs:

(add-to-list 'load-path "/path/to/empos")           ; comment if empos.el is in standard load path
(require 'empos)

(setq empos-available-engines '("arxiv" "crossref"))
(setq empos-favorite-engines '("crossref"))         ; comment for all available
(setq empos-bib-file "path/to/bibliography.bib")    ; can be optional, but then it woud make sense
                                                    ; to define the empos-secondary-bib
(setq empos-secondary-bib "path/to/a/folder")       ; comment if not needed
  • empos-available-engines should contain engines that have been installed in pyopl.
  • empos-favorite-engines contains the engines to be used. Note this is a custom variable and can be set through customization.
  • empos-bib-file is the (absolute) path to the master bibliography file in which the references are appended.
  • empos-secondary-bib is the (absolute) path to a folder in which the citations are going to be added.

Usage

Short story

M-x empos-search RET your-query RET

Longer version

The extension is essentially a wrapper for pyopl written for emacs. It works by calling pyopl with arguments specified in emacs, displaying the results in a separate buffer and saving the references in a specified location.

The location of the pyopl executable is considered to be global (i.e, it can be invoked like this:

pyopl "you talkin to me"

In case something goes wrong and this does not work (might be the case in virtualenvs), you can respecify the variable pyopl-path. The engines which are used are specified in empos-favorite-engines which is a list of strings containing the names of the engines. If no such variable is declared then the search is done on all available engines defined in empos-available-engines.

The actual search is carried by an interactive function empos-search displaying its output on a new buffer defining an minor mode called empos-mode to ensure better interaction.

Upon hitting the function empos-get-identifier is called using a regex to fetch the relevant id and engine and calling the pyopl executable again, this time in fetch mode.

About

Emacs Paper Online Search

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Emacs Lisp 100.0%