🦀 dagtoc 📖
A command-line tool for adding, getting and deleting contents of pdf
## Introduction
**dagtoc** uses [MuPdf](https://mupdf.com/) as the underlying PDF operator.
## Installation
### Language package managers
- Install via *cargo*:
```bash
$ cargo install dagtoc
```
### Archlinux
- Install from source code:
```bash
$ paru -S dagtoc
```
- Or install binary:
```bash
$ paru -S dagtoc-bin
```
## Usage
I will show how to use dagtoc with the files in [demo](./demo/) directory.
### TOC
The carrier format for TOC is [KDL](https://kdl.dev/) which is an excellent document language
for **forest structure**.
Outline looks like:
```
-
```
If it has suboutlines, they are written as the children of node:
```
- {
-
-
...
}
```
You can nest them certainly! See [Makefile.kdl](./demo/Makefile.kdl) for a real TOC.
### Add TOC
```bash
$ dagtoc -a Makefile.kdl Makefile-NOTOC.pdf -o Makefile.pdf
```
Additionally, you can use `-x` to specify the page number offset (+/-) for added TOC.
It would help you amend the TOC whose page numbers are all offset by the same constant.
**Page outbound error will occur if the number of any page is reduced to non-positive number.**
### Delete TOC
```bash
$ dagtoc -d Makefile.pdf -o Makefile-NOTOC.pdf
```
### Get TOC
```bash
$ dagtoc -g Makefile.pdf > Makefile.kdl
```
Additionally, you can use `-x` to specify the page number offset (+/-) for got TOC.
It would help you amend the TOC of pdf whose page numbers are all offset by the same constant.
**Page number will be empty if it is reduce to non-positive number.**
### Check TOC
```bash
$ dagtoc -c Makefile.pdf
```
Checking the page numbers are increasing and not empty in the pdf.
## Remember dagtoc
dagtoc = delete-add-get-TOC