- Version control your references
- Auto-fetch relevant bibliographic data
- Render as pretty html or
.bib
Example output.
Pick a paper, come up with a meaningful identifier, attach a doi or arxiv id, and save in a yaml file:
2015-mdtraj:
doi: 10.1016/j.bpj.2015.08.015
2009-theobald-rmsd:
doi: 10.1002/jcc.21439
You can easily version control this file.
You might want to add some tags:
2015-mdtraj:
doi: 10.1016/j.bpj.2015.08.015
tags: [molecular-dynamics, analysis, python]
2009-theobald-rmsd:
doi: 10.1002/jcc.21439
tags: [molecular-dynamics, analysis, algorithm]
And descriptions:
2015-mdtraj:
doi: 10.1016/j.bpj.2015.08.015
description: "MDTraj loads every trajectory format!"
2009-theobald-rmsd:
doi: 10.1002/jcc.21439
description: "Fast method for computing RMSD!"
Cross-references are a powerful tool to give context to papers.
2015-mdtraj:
doi: 10.1016/j.bpj.2015.08.015
description: |+
MDTraj loads every trajectory format! It computes
RMSD pretty fast using [2009-theobald-rmsd].
2009-theobald-rmsd:
doi: 10.1002/jcc.21439
Contextualize the work by noting important references from the paper (with their reference number)
2015-mdtraj:
doi: 10.1016/j.bpj.2015.08.015
description: |+
MDTraj loads every trajectory format!
The authors justify their work by noting that
[2013-milliseconds-folding=2] claims analysis
is becoming the bottleneck for MD.
2013-milliseconds-folding:
doi: 10.1016/j.sbi.2012.11.002
Relevant bibliographic data is automatically fetched using crossref or arxiv. There is no need for you to manually fill in authors, title, etc. Gitbib will cache this metadata to avoid flooding these services with requests.
Clone this repository. Install the program's runtime and installation requirements, resp.
pip install -r requirements.txt
pip install flit
Install the package with flit
flit install
Gitbib expects a directory full of YAML files containing
references as well as a file named gitbib.yaml
, which specifies
configuration options. See example/gitbib.yaml
for a commented
template of what to put in this file.
Pass the directory containing references and gitbib.yaml
to the
command-line program gitbib
.
You can build the example references by going
to the example/
folder in this repository and running gitbib.
cd example/
gitbib ./
This will generate html pages and bib
files for each output
specified in gitbib.yaml
as well as an index.html
file to
browse through the outputs.
The description field uses some markdown-style formatting. Paragraph breaks are indicated with blank lines. Otherwise, duplicated whitespace is trimmed.
You can include [links](github.com)
like that.
I'm very-much interested in crossreferencing entries. If the entry cites another entry as reference e.g. 23, link it like
They cite the [2011-prinz=23] review
Otherwise, crossreference like
This is cited by the [2011-prinz] review
See how important good identifiers are!
- identifier: The key (identifier) must be unique across all input
yaml
files. I like all-lowercase, hyphen-spaced identifiers starting with the year, optionally middling with the first author's last name (if necessary to distinguish), and ending with a short description of what the paper is about. - identifier: Right now, we support
doi
andarxiv
.