Add papis reference manager configuration
- Add papis.nix module with embedded configuration - Configure library at ~/Documents/Library/papis - Set up nvim editor and fzf picker integration - Add comprehensive papis documentation to README 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
33c4ebea09
commit
0da9c3b3cb
2 changed files with 110 additions and 0 deletions
64
README.md
64
README.md
|
|
@ -400,6 +400,70 @@ rsync -avh --progress --exclude-from=~/.rsync-exclude source/ dest/
|
||||||
- Safety options including partial transfers and dry-run capability
|
- Safety options including partial transfers and dry-run capability
|
||||||
- Preserves extended attributes and ACLs on macOS
|
- Preserves extended attributes and ACLs on macOS
|
||||||
|
|
||||||
|
### 🌟 Reference Management
|
||||||
|
|
||||||
|
**Tool**: papis
|
||||||
|
**Purpose**: Command-line reference manager for academic papers and documents
|
||||||
|
|
||||||
|
A powerful bibliography manager that stores documents and metadata in a human-readable format:
|
||||||
|
|
||||||
|
#### Key Features:
|
||||||
|
- **Document Library**: Centralized storage at `~/Documents/Library/papis`
|
||||||
|
- **BibTeX Integration**: Import/export references in standard academic formats
|
||||||
|
- **PDF Management**: Automatic file organization and retrieval
|
||||||
|
- **Search & Filter**: Fast document discovery with fuzzy finding (fzf)
|
||||||
|
- **Metadata Storage**: Human-readable YAML files for bibliographic data
|
||||||
|
- **Editor Integration**: Configured with nvim for editing document metadata
|
||||||
|
|
||||||
|
#### Usage Examples:
|
||||||
|
|
||||||
|
**Adding documents:**
|
||||||
|
```bash
|
||||||
|
# Add a paper from DOI
|
||||||
|
papis add --from doi 10.1000/example.doi
|
||||||
|
|
||||||
|
# Add a PDF file with interactive metadata entry
|
||||||
|
papis add paper.pdf
|
||||||
|
|
||||||
|
# Add from arXiv
|
||||||
|
papis add --from arxiv 2301.12345
|
||||||
|
|
||||||
|
# Add from URL
|
||||||
|
papis add --from url https://example.com/paper.pdf
|
||||||
|
```
|
||||||
|
|
||||||
|
**Searching and browsing:**
|
||||||
|
```bash
|
||||||
|
# Search documents (uses fzf picker)
|
||||||
|
papis open
|
||||||
|
papis search "machine learning"
|
||||||
|
papis search author:smith year:2023
|
||||||
|
|
||||||
|
# List all documents
|
||||||
|
papis list
|
||||||
|
|
||||||
|
# Open specific document
|
||||||
|
papis open smith2023
|
||||||
|
```
|
||||||
|
|
||||||
|
**Document management:**
|
||||||
|
```bash
|
||||||
|
# Edit document metadata
|
||||||
|
papis edit
|
||||||
|
|
||||||
|
# Export to BibTeX
|
||||||
|
papis export --all --format bibtex > references.bib
|
||||||
|
papis export search_term --format bibtex
|
||||||
|
|
||||||
|
# Show document information
|
||||||
|
papis show document_key
|
||||||
|
```
|
||||||
|
|
||||||
|
**Configuration location**: `modules/papis.nix` with embedded configuration
|
||||||
|
**Main library**: `~/Documents/Library/papis`
|
||||||
|
**Editor**: nvim (configured automatically)
|
||||||
|
**Picker**: fzf for interactive document selection
|
||||||
|
|
||||||
### 🌟 Python Development & Package Management
|
### 🌟 Python Development & Package Management
|
||||||
|
|
||||||
**Tool**: uv
|
**Tool**: uv
|
||||||
|
|
|
||||||
46
modules/papis.nix
Normal file
46
modules/papis.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Install papis package
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
papis
|
||||||
|
];
|
||||||
|
|
||||||
|
# Papis configuration
|
||||||
|
home.file.".config/papis/config".text = ''
|
||||||
|
[settings]
|
||||||
|
default-library = main
|
||||||
|
editor = nvim
|
||||||
|
opentool = open
|
||||||
|
file-browser = open
|
||||||
|
|
||||||
|
# Document management
|
||||||
|
add-folder-name = {doc[author]}-{doc[year]}-{doc[title]}
|
||||||
|
add-file-name = {doc[author]}-{doc[year]}-{doc[title]}
|
||||||
|
ref-format = {doc[author]}{doc[year]}
|
||||||
|
|
||||||
|
# Search and display
|
||||||
|
sort-field = year
|
||||||
|
sort-reverse = True
|
||||||
|
match-format = {doc[tags]}{doc[author]}{doc[title]}{doc[year]}
|
||||||
|
|
||||||
|
# Database and storage
|
||||||
|
database-backend = papis
|
||||||
|
use-git = False
|
||||||
|
|
||||||
|
# Interface
|
||||||
|
fzf-binary = fzf
|
||||||
|
picktool = fzf
|
||||||
|
|
||||||
|
[main]
|
||||||
|
dir = ~/Documents/Library/papis
|
||||||
|
|
||||||
|
# Local configuration for the main library
|
||||||
|
local-config-file = .papisrc
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Create the papis library directory
|
||||||
|
home.activation.createPapisDir = ''
|
||||||
|
mkdir -p ~/Documents/Library/papis
|
||||||
|
'';
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue