Bibliography manager written in awk
Just like shbib, but better.
- Minimal (only require POSIX compliant awk)
- Search BibTeX on crossref and google scholar
- Create and modify bib file on the fly
- Automatically and manually rename and encode metadata to pdf file
- Create, view and edit sublibrary
- Write notes for BibTeX entry
Contribution to use it in repository in distro is welcome. Here is a simple guide for manual installation:
git clone https://github.com/huijunchen9260/bib.awk
to download bib.awk to directory.- To install on linux:
- Run
sudo make install
to install bothbib.awk
.
- Run
- Configuration is necessary. You definitely need to set
BIBFILE
andPDFPATH
for basic function to work. For detailed explanation, see Configuration.
Configuration is done within the first section of bib.awk
file.
Configuration explanation:
- If you want to use environment variable
VAR
:ENVIRON["VAR"]
BIBFILE
defines the location of your.bib
fileBIBUKEY
defines the university url for journal authenticationPDFPATH
defines the location of all your research papers-
needs to have slash at the BEGINNING and the END of the stringOPENER
defines the system default file openerREADER
defines the pdf file openerEDITOR
defines the text file openerBROWSER
defines the browser to open urlTEXTEMP
defines the location for tex template for Notes- needs to have slash at the BEGINNING of the string
CLIPINW
defines the command to copy into clipboardCLIPOUT
defines the command to copy out from clipboard
- clipboard:
xclip
orxsel
for linux (require configuration),pbcopy
andpbpaste
for Mac OS - file opener:
xdg-open
for linux,open
for Mac OS gs
(ghostscript) for pdf metadata encoding, [MacOS], [Linux and Windows]curl
to search on Internetxdotool
to hide / show terminal when open graphical software, not necessary- other shell utilities:
rm
,mv
,file
,printf
,mkdir
,stty
NUMBERS:
[num] - move cursor to entry [num]
[num]+G - Go to page [num]
NAVIGATION:
k/↑ - up j/↓ - down
l/→ - right h/← - left
Ctrl-f - Half Page Down Ctrl-u - Half Page Up
n - PageDown p - PageUp
g/Home - first page G/End - last page
MODES:
/ - search
←/→ - move left/right
⌫ - backspace on one character
PREVIEW:
v - toggle preview on pdf file (file selection)
MISC:
r - refresh q - quit
? - show keybinds
- search on crossref by text
- search on crossref using the following shell command:
read the API manual!
curl -s "https://api.crossref.org/works? \ query.bibliographic=string+to+search \ &select=indexed,title,author,type,DOI, \ published-print,published-online,container-title"
- directly pull out field needed.
- If search text is DOI, then directly pull out bibtex.
- search on crossref using the following shell command:
- search on crossref by metadata
- search on google scholar
- search using following url:
https://scholar.google.com/scholar?q=string+to+search 2>&1 1>/dev/null &
- search using following url:
- open research paper
- configure
PDFPATH
variable inbib.awk
- configure
- open research paper website
- copy BibTeX label
- write note
- Notes stored in
PDFPATH/Notes
- Notes stored in
- open research appendices
- Appendices stored in
PDFPATH/appendices
- Appendices stored in
- edit existing BibTeX entry
- manually create file hierarchy
- create
PDFPATH/Notes
,PDFPATH/appendices
, andPDFPATH/Libs
for selected BibTeX entry
- create
- automatically create file hierarchy
- create
PDFPATH/Notes
,PDFPATH/appendices
, andPDFPATH/Libs
for all pdf files inPDFPATH
- create
- manually build database
- encode metadata in chosen pdf file using
gs
.
- encode metadata in chosen pdf file using
- automatically update database
- loop over pdf files in
PDFPATH
and encode metadata if missing.
- loop over pdf files in
- open sublibraries
- Libraries stored in
PDFPATH/Libs
- Libraries stored in
- create sublibraries
- edit sublibraries
- add/delete BibTeX entry
- remove the chosen sublibrary