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:
Yan Lin 2025-07-29 15:49:49 +02:00
parent 33c4ebea09
commit 0da9c3b3cb
2 changed files with 110 additions and 0 deletions

View file

@ -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
View 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
'';
}