PHPackages                             splorp/paperback-export - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. splorp/paperback-export

ActiveKirby-plugin[Utility &amp; Helpers](/categories/utility)

splorp/paperback-export
=======================

Export Kirby CMS content for use with the PaperBack Book Maker

2.0.7(1y ago)43MITPHP

Since May 17Pushed 4mo ago2 watchersCompare

[ Source](https://github.com/splorp/kirby-paperback-export)[ Packagist](https://packagist.org/packages/splorp/paperback-export)[ Docs](https://github.com/splorp/kirby-paperback-export)[ RSS](/packages/splorp-paperback-export/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (1)Versions (7)Used By (0)

Kirby Paperback Export
======================

[](#kirby-paperback-export)

Export [Kirby](https://getkirby.com/) CMS content for use with the [Paperback Book Maker](https://ritsuko.chuma.org/paperback/).

This plugin is compatible with Kirby 3, Kirby 4, and Kirby 5.

For [Kirby 2](https://github.com/getkirby-v2) sites, download version [1.0.1](https://github.com/splorp/kirby-paperback-export/releases/tag/1.0.1) of the plugin.

What does this plugin do?
-------------------------

[](#what-does-this-plugin-do)

The plugin generates a lightly formatted plain text file from a set of pages specified by the user. The text file is used to create a “book” package which can be viewed on a Newton OS device.

An example of the exported file can be downloaded using the link below. The file contains all of the terms currently published on the [Newton Glossary](https://newtonglossary.com/) site.

[newtonglossary.com/export/paperback](https://newtonglossary.com/export/paperback)

What is a Paperback book, you ask?
----------------------------------

[](#what-is-a-paperback-book-you-ask)

Paperback is a simple cross-platform utility created by [David Fedor](https://web.archive.org/web/20171018055006/https://thefedors.com/pobox/) that takes plain text files and quickly packages them for viewing on a Newton OS device. Since the Paperback utility only runs under classic Mac OS and Windows, an online [Paperback Book Maker](https://ritsuko.chuma.org/paperback/) was developed by [Victor Rehorst](https://github.com/chuma) for all your cross-platform needs.

Installation
------------

[](#installation)

After installing the plugin using one of the methods below, visiting `yoursite.com/export/paperback` should automatically download a text file without any additional configuration.

### Download

[](#download)

To install the plugin manually, [download the current release](https://github.com/splorp/kirby-paperback-export/releases), decompress the archive, and put the files in:

`site/plugins/paperback-export`

For [Kirby 2](https://github.com/getkirby-v2) sites, download version [1.0.1](https://github.com/splorp/kirby-paperback-export/releases/tag/1.0.1) of the plugin.

### Git Submodule

[](#git-submodule)

Installing the plugin as a Git submodule:

```
$ cd your/project/root
$ git submodule add https://github.com/splorp/kirby-paperback-export.git site/plugins/paperback-export
$ git submodule update --init --recursive
$ git commit -am "Add Kirby Paperback Export plugin"

```

Updating the plugin as a Git submodule:

```
$ cd your/project/root
$ git submodule foreach git checkout master
$ git submodule foreach git pull
$ git commit -am "Update submodules"
$ git submodule update --init --recursive

```

Options
-------

[](#options)

### Table of Contents Prefix

[](#table-of-contents-prefix)

Paperback books can include a table of contents created from the text found located in the `$page->title()` field. The following option can be added to the `site/config/config.php` file, allowing you to specify a custom table of contents prefix.

This option is not set by default.

```
return [
	'splorp.paperback-export.prefix' => '',
];
```

Specify a table of contents prefix.

```
return [
	'splorp.paperback-export.prefix' => '@@TOC ',
];
```

### Include Other Content Fields

[](#include-other-content-fields)

By default, text located in the `$page->title()` and `$page->text()` fields will be included in the exported data. The following option can be added to the `site/config/config.php` file, allowing you to specify other content fields to be included. These fields will be appended after the title and text fields.

This option is not set by default.

```
return [
	'splorp.paperback-export.fields' => [],
];
```

Specify one or more content fields and their type as an array.

```
return [
	'splorp.paperback-export.fields' => ['author' => 'text','posts' => 'related'],
];
```

Use the `text` content type for any field containing alphanumberic data, such as an author name or date.

Use the `related` content type for fields formatted using the YAML syntax for [related articles](https://getkirby.com/docs/cookbook/content/related-articles). The title field of each related article or page will be included in the exported data.

### Include Unlisted Pages

[](#include-unlisted-pages)

By default, every page on your Kirby site will be included in the exported data. The following options can be added to the `site/config/config.php` file, allowing you to filter which pages are included based on certain criteria.

This option is set to true by default.

```
return [
	'splorp.paperback-export.includeUnlisted' => true,
];
```

### Include Children Pages

[](#include-children-pages)

Pages specified in this option will not be included, but the children of those pages will be included in the exported data.

This option is not set by default.

```
return [
	'splorp.paperback-export.includeChildren' => [],
];
```

Specify one or more pages as an array.

```
return [
	'splorp.paperback-export.includeChildren' => ['blog','newsletter'],
];
```

### Exclude Templates

[](#exclude-templates)

Pages using the templates specified in this option will be excluded from the exported data.

This option is not set by default.

```
return [
	'splorp.paperback-export.excludeTemplate' => [],
];
```

Specify one or more templates as an array.

```
return [
	'splorp.paperback-export.excludeTemplate' => ['about','search'],
];
```

### Include Datestamp

[](#include-datestamp)

The following option can be added to the `site/config/config.php` file, allowing you to add a datestamp that indicates when the data was exported. The datestamp is formatted as YYYY-MMM-DD and is inserted after the site title and description.

This option is set to false by default.

```
return [
	'splorp.paperback-export.includeDatestamp' => false,
];
```

Release Notes
-------------

[](#release-notes)

### 2.0.7

[](#207)

- Changed `version` field to avoid conflict with Kirby 5 reserved field names

### 2.0.6

[](#206)

- Improved handling of pages containing `` elements

### 2.0.5

[](#205)

- Added option to specify inclusion of the datestamp

### 2.0.4

[](#204)

- Added option to specify other content fields

### 2.0.3

[](#203)

- Added option to specify the table of contents prefix
- Added better exception checking for option values
- Fixed malformed `support` field in `composer.json`
- Removed extraneous comments from `index.php`

### 2.0.2

[](#202)

- Added `keywords`, `homepage`, `support.docs`, `support.source` fields to `composer.json`

### 2.0.1.1

[](#2011)

- Fixed version number in `index.php`

### 2.0.1

[](#201)

- Refactored replacement patterns in string functions
- Removed extra line breaks introduced by heading elements
- Better handling of pages containing `` elements
- Added the current date to the exported file

### 2.0.0

[](#200)

- Refactored and updated for Kirby 3
- Tweaked the option names to be more consistent and self explanatory
- Moved the file export code into `snippets/export.php`
- Renamed `snippets/page.php` to `snippets/content.php`

### 1.0.1

[](#101)

- Refactored filtering options
- Fixed formatting of paragraph breaks in `$page->text()`

### 1.0.0

[](#100)

- Initial release

Acknowledgements
----------------

[](#acknowledgements)

A tip of the hat to [Pedro Borges](https://pedroborg.es/) and his [Kirby XML Sitemap](https://github.com/pedroborges/kirby-xml-sitemap) for providing the necessary framework and inspiration to attempt my own plugin.

License
-------

[](#license)

Copyright © 2017–2025 Grant Hutchinson

This project is licensed under the short and sweet [MIT License](https://opensource.org/licenses/MIT). This license allows you to do anything pretty much anything you want with the contents of the repository, as long as you provide proper attribution and don’t hold anyone liable.

See the [license.txt](https://raw.github.com/splorp/kirby-paperback-export/master/license.txt) file included in this repository for further details.

Questions?
----------

[](#questions)

Contact me via [email](mailto:grant@splorp.com) or [Mastodon](https://mastodon.social/@splorp).

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance64

Regular maintenance activity

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~227 days

Recently: every ~269 days

Total

6

Last Release

372d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4fbd8c1299ebe525c826af7a625d9071feb866c6ddae7f0bcb0e6ed23922b44c?d=identicon)[splorp](/maintainers/splorp)

---

Top Contributors

[![splorp](https://avatars.githubusercontent.com/u/29835?v=4)](https://github.com/splorp "splorp (62 commits)")

---

Tags

kirby-cmskirby-pluginkirby3kirby3-pluginkirby4kirby4-pluginnewton-booknewton-ospaperback-book-makerkirbykirby-pluginkirby-cmspaperback-book-makernewton-booknewton-os

### Embed Badge

![Health badge](/badges/splorp-paperback-export/health.svg)

```
[![Health](https://phpackages.com/badges/splorp-paperback-export/health.svg)](https://phpackages.com/packages/splorp-paperback-export)
```

###  Alternatives

[medienbaecker/kirby-modules

Easily add modules to your pages

895.5k1](/packages/medienbaecker-kirby-modules)[belugadigital/kirby-navigation

Kirby 5 field for hierarchical menus with drag &amp; drop level indentation.

8614.7k](/packages/belugadigital-kirby-navigation)[bnomei/kirby3-dotenv

Kirby Plugin for environment variables from .env

4149.6k2](/packages/bnomei-kirby3-dotenv)[bnomei/kirby3-recently-modified

Kirby Section to display recently modified content pages

3210.6k](/packages/bnomei-kirby3-recently-modified)[grommasdietz/kirby-hidden-characters

Kirby CMS plugin for visualising hidden characters in the Panel

461.8k](/packages/grommasdietz-kirby-hidden-characters)[bnomei/kirby3-robots-txt

Manage a virtual robots.txt from the Kirby config file

2250.1k](/packages/bnomei-kirby3-robots-txt)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
