A command-line tool for managing your bibliography (i.e., .bib files and .pdf files) across multiple machines using Dropbox.
Features:
- add papers, sorted by citation key, to Dropbox
- easily open any paper given its citation key
- organize papers by tagging them
- generate a full
.bibfile of all your papers - export papers with a particular tag
./install-deps.sh
Fill in ck.config and put it in your user_config_dir folder.
For auto tag-suggesting, you can install pdfgrep (optional):
apt install pdfgrep # Ubuntu/Debian
brew install pdfgrep # Mac OS
To install bash auto-completion, run
source bash_completion.d/ck
Other dependencies:
brew install pango libffi # Mac OS
Just search GitHub for more: "ieeexplore downloadcitations"
# add a paper to your library given a paywall URL (e.g., ACM DL, SpringerLink, IEEEXplore)
# or an eprint url (e.g., IACR eprint)
ck add <paper-url> <citation-key>
# add a bib file to your library without a PDF
ck open <citation-key>.bib
# ...and edit the .bib file and save it
# open a paper's PDF
ck open <citation-key>
ck open <citation-key>.pdf
# open a paper's .bib file
ck open <citation-key>.bib
# tag the paper with <tag> (or enter tag manually from keyboard)
ck tag <citation-key> [<tag>]
# search all your .bib files and print matching papers' citation keys
ck search <query>
Q: How to deal with multiple published versions of the same paper (eprint, conference, journal)?
A: Have each version as a different CK, since it might contain additional info that needs to be cited.
- some springerlink URLs don't work because they have .ris citations only
Might want separate addbib and addpdf commands, to support adding the PDF and .bib file from different locations. Then, ck add can just call both of them, with overwrite=false
- If called individually, they will leave the library in an inconsistent state, so the user should be warned (since either PDF or .bib file might be missing)
- URL handler should be split into a
download_pdfand adownload_bib, so we can call them separately inaddbib/addpdf- this is useful when PDFs are paywalled, but we still want the .bib
Add support for adding PDF from local file too.
Add support for downloading a webpage as a PDF and adding it.
ck tag/untag/genbib/copypdfsautocompletion of tags- figure out how to have a
setup.pythat installs this thing- add a
requirements.txttoo
- add a
- if PDFs are not available from publisher, try sci-hub.tw: see python example here
- Cryptology ePrint updater: need it to update papers to their latest versions
ckshould run this once a day
- should move old paper to
CK<year>.<ckdateadded>.pdf(make sure no naming conflicts)
- tools for making the .bib files consistent
- titles should have double brackets
- same conference shouldn't have different names
- author names should always be separated by ' and '
- similar or incomplete author names
ckcommandlistsubcommand- display associated file info
- nopdf
- nobib
- md
- any other files (e.g., ABC19.slides.pdf)
- list all conferences across papers
- when invoked without recursion, tell user what other subtags are there in the current subdir?
- display associated file info
opensubcommand- add support for various associated files: .bib, .html, .md, .notes.[0-9]*.pdf, .slides.pdf, .etc
- if you type in a partial citation key, should list all matches
- if just one match, should just open it, displaying a warning that it only partially matched so as to not train you to use the wrong CK
- if you type an ambiguous citation key (lowercase / uppercase), maybe you should be prompted for what to open, because there won't be many matches.
untagsubcommand- right now, if we only have a
.bibfile without any PDFs,untagwill not detect any untagged papers. how to handle?
- right now, if we only have a