Powerful and highly extensible command-line based document and bibliography manager.
papis_id
key (#449)In order to make plugin writing easier we have decided to introduce a
papis_id
key in the document's info files. This key essentially functions as
a UUID for the document. Many commands have gained support for this, e.g.
papis list --id query
papis open papis_id:someid
For more information see the documentation.
Important: This change requires updating the database backend. This can be
done by simply clearing the cache using papis --cc
.
papis doctor
command (#421)A new papis doctor
command was introduced that can be used to check that
document information is correct, up to date, or is nicely linted. The command
also supports fixing incorrect information for many cases!
It can be used as
papis doctor --checks files --explain query
There are several useful checks implemented already (non-exhaustive list):
files
: checks that the document files actually exist in the file system.keys-exist
: checks that the provided keys exist in the document.bibtex-type
: checks that the document type is a valid BibTeX type.refs
: checks that the document ref exists and does not contain invalid characters.For more information see the documentation.
papis citations
command (#451)A new papis citations
command was added to handle retrieving citation
information for a document. This includes both papers cited by the document
and those which cite the document itself.
For more information see the documentation.
Add support for the DBLP database. The database can now be explored using
papis explore dblp -q query pick
and documents can be imported directly using the DBLP key or URL
papis add --from dblp 'conf/iccg/EncarnacaoAFFGM93'
The Papis web application, which can be accessed with papis serve
, has seen
major development since the last version. It now has support for
info.yaml
file of a document (requires ace.js
).pdfjs
).KaTeX
).papis doctor
.And many other general interface and robustness improvements.
papis update
(#404),
papis edit
(#391) and
the papis picker (#319).papis config
command, which can now show defaults
and select specific sections (#454).bash
, zsh
, and fish
(#478).papis add
in certain scenarios
(#505).DjVu
files correctly (#522).papis addto
(#541).sort-reverse
configuration option (#543).Many issues were resolved and new (and old) contributors made the following changes possible.
A basic hook infrastructure has been added to be able to use emacs-like hooks for some commands.
additional
keyword for the formatter plugin systempapis bibtex
import
command to import bibtex files as papis documents
into the library.filter-cited
.papis exec
exec
to run python scripts in the environment of the
papis executable.c-t
papis merge
papis merge
to merge documents in pairs.papis browse
-n
and --print
to just print the url to be opened.acm
downloaderProject Euclid
downloaderNow you can remove notes files with papis rm --notes
or have templates for the notes.
Check out the
notes-template variable.
papis serve
papis serve
command.
Feel free to make suggestions.papis explore
add
command to simply add documents retrieved.papis.export
_papis_local_folder
so that third-party apps
can get the documents' paths without having to go again through papis.papis bibtex
unique
command to be able to merge different bib files
and filter out repetitions.doctor
to check for fields in a bibfile.iscited
to check which bib items are cited in a text file.jinja2
is available again as a plugin.ref-format
to
"{doc[title]:.15} {doc[author]:.6} {doc[year]}",
info.yaml
limited to 30 characters.papis add
papis browse
ads
handler to jump into the ads
website of the paper
using a doi.--sort
and --reverse
flags to most command line commands, together
with the sort-file
configuration option.
see doc.time-stamps
in order to sort chronologically documents
see doc.--doc-folder
to most command line commands for better bash-scripting
capabilities.--logfile
flag in order to dump log messages to a file.papis.utils.format_doc
to papis.document.format_doc
in order to minimize circular dependencies.--profile
flag to profile the papis run.papis add
papis bibtex
papis bibtex browse
.Run
and Git
command--pick
, --doc-folder
, --all
and --sort
flags so that we can choose a document to run the shell or git command
in that folder or in all folders matching a given query introduced by
--pick
.A new plugin architecture is in place. For more information please refer to the documentation
Now some usual commands have a --git
flag that lets the command work
alongside git. For instance if the --git
flag is passed to papis-edit
,
it will add and commit the info.yaml
file automatically. The same applies
to papis-add
, papis-addto
, papis-update
and papis-rm
.
You can activate by default the --git
flag using the use-git
configuration
option.
For devs: The main functions to implement this interface are found in the
papis module papis.git
.
papis add
The configuration settings file-name
and folder-name
are now
add-file-name
add-folder-name
so that they become more readable and understandable.
Also the flag --name
is now --folder-name
.
The flag --commit
now has the name --git
.
The flag --dir
now has the more descriptive name --subfolder
.
The flag --no-document
has been finally removed.
The most notable update is that papis is now able to guess a doi
or arxiv
id from a pdf that is being added, so the following could work
papis add --confirm arxiv-paper.pdf
or
papis add --confirm some-random-paper.pdf
with the --confirm
flag it will ask if we want to use the doi
or arxivid
retrieved.
We can query crossref
with --from-crossref
in order to get information
and add a paper.
papis export
export-text-format
has been removed along with
the export --text command. papis now support plugins so you should write your
own instead.export
command have been replaced
by export --format=bibtex/json/yaml
--file
has been removed, if you want to export the related files
then just either export the folder or write a small script for it.papis explore
papis explore export
to match the papis export
command.papis list
-n, --notes
flags to list notes.--pick
flag and add the --all
flag to be consistent with the
behaviour of other commands.run
function for consistency with other
commands.papis browse
--all
flag, improve tests and log.papis
database is now caching the document objects instead
of only the paths, which means that no yaml parsing is necessary every
time, which makes it around 10x
faster than in version v0.8
.
For a library of 1200 documents, the speed of the papis
database backend
is comparable with the whoosh
backend.papis
database has changed, now
the setter character is :
instead of =
to better conform with other
common database engines like whoosh
or xapian
. For instance, before
papis open 'author=einstein year=1905'
and now it will be
papis open 'author:einstein year:1905'
~/.config/papis/config.py
python file has been added which is
sourced after the ~/.config/papis/config
file has been processed.
This should enable some users to have more granularity in the customization.fallback
downloader has
been added. Now you will be able to retrieve information
from many more websites by by virtue of the metadata of html websites.One of the main developments for version 0.8
is to make papis
less
dependent on PyPi
, for which some important dependencies have been
added into the main source and is installed with it.
Redesign of the picker and tui
.
Add text_area
widget for duplication warnings and papis rm
Add color to the logs and potentially throughout the project.
Add rudimentary BASE parser
and include it in papis explore
and papis update
.
Update Hyperlink DOIs to preferred resolver (issue #136)
Add click based shell completion for bash
and zsh
.
Consult the docs.
Add bibtex tests
Update export format in bibtex
Fix help string in commands
papis export -o
now appends and does not overwrite
Fix existing paths in command addto
Add @papis.cli.bypass
decorator for scripts
Remove xeditor
config parameter
Add external picker in api
Erase all guis from papis main repository, they should be used in external scripts or projects, docs.
Fix downloader testing framework.
Add downloader for:
frontiersin.org
hal.fr
prompt_toolkit