The library structure

The Papis library structure is very flexible. It is specified by directories (and, possibly, subdirectories) in the filesystem.

A Papis library is a directory containing subfolders with documents. Papis simply searches the library directory for (possibly nested) subfolders that contain an information file, which by default is an info.yaml file.

Every subfolder that has an info.yaml file in it is a valid Papis document. As an example let us consider the following library:

/home/fulano/Documents/papers/
├── folder1
│   └── paper.pdf
├── folder2
│   ├── folder3
│   │   ├── info.yaml
│   │   └── blahblahblah.pdf
│   └── folder4
│       ├── info.yaml
│       └── output.pdf
├── classics
│   └── folder5
│       ├── info.yaml
│       └── output.pdf
├── physics
│   └── newton
│       └── principia
│           ├── document.pdf
│           ├── supplements.pdf
│           └── info.yaml
└─── rpa
    └── bohm
        ├── info.yaml
        ├── notes.tex
        └── output.pdf

First, you can see there are a lot of folders. Note that not all of them contain valid documents. The PDF in folder1/paper.pdf is not valid since folder1 does not contain a info.yaml file. It does not matter how deep your library’s folder structure is: you can have a physics folder in which you have a newton folder in which you have a folder containing the actual book document.pdf plus some supplementary information supplements.pdf. In this case, inside the info.yaml you would have the following file section:

files:
- document.pdf
- supplements.pdf

which tells Papis that this folder contains two relevant files.