I needed a simple way of taking notes on research papers, where I could store papers in my existing Dropbox space, take formatted notes in a full-featured text editor, and retrieve BibTeX references for papers easily. libris is the result.
Its functionality is pretty basic at this point, and will grow as my requirements grow.
Your library lives in a folder, called the root folder. This folder doesn't have to have any special properties, though I store my papers on Dropbox currently.
Each paper is stored in a folder within the root folder along with its notes and metadata. An empty notes and metadata file are created when the paper is added to the library. The name of the paper's folder (which defaults to the paper's filename but can be any unique name you want) is used as an identifier for the paper during all subsequent operations on that paper.
All configuration is specified in a config file, ~/.librisrc
.
Here's an example configuration file:
[general]
editor: emacs -nw
viewer: open
[folders]
root: ~/Dropbox/Papers
[notes]
renderer: redcarpet
extension: md
[webui]
port: 9494
[grobid]
host: localhost
port: 8080
general/editor
: the program that will be executed for editinggeneral/viewer
: the program that will be used for viewing papersfolders/root
: the root folder in which your papers will be storednotes/renderer
: the application that the web UI will use to render your notesnotes/extension
: the file extension that will be given to the file containing your noteswebui/port
: the port number that libris' web UI will run ingrobid/host
: the hostname of a GROBID server against which to do metadata lookupsgrobid/port
: the port number the server given bygrobid/host
Add papers to your library with libris add <file>
; optionally, specify
the paper's name within the library with the --folder_name
/-n
flag. The
paper's name defaults to the name of its file, and must be unique.
To open a paper in an external program for viewing, run libris open <paper name>
.
To edit a paper's metadata, run libris edit_metadata <paper name>
.
To generate BibTeX based on a paper's metadata, run
libris bibtex <paper name>
.
To run the libris web server, which lets you browse and search papers and
read notes for a paper, run libris serve
. Double-click on a field to edit it;
edits will persist automatically.
More commands coming soon
If you use Bash and have bash_completion
installed, you can add completion to libris by
adding the following to your ~/.bashrc
(replace the location of your libris repository
as appropriate):
LIBRIS_BASH_COMPLETION="$HOME/src/libris.git/bash_completion"
if test -f ${LIBRIS_BASH_COMPLETION}
then
source ${LIBRIS_BASH_COMPLETION}
fi
If configured, when libris adds a paper to its library, it will use a GROBID server to extract that paper's metadata. If that metadata contains a DOI, libris will look up that DOI with the CrossRef API.
A relatively recent version of Python and the following packages (all available from PyPi):