Programmers Guide

Notebook Data Model

The data is abstracted away from any particular file presentation. Importers and exporters (see below) convert other file formats into/from the data model.

Quill uses a coordinate system with points \((x,y)\) such that:

  • The orgin is at the top left
  • Off-page coordinates are allowed
  • The points on the page satisfy \(y\in [0,1]\) and \(x \in [0,\xi]\) where \(\xi\) is the aspect_ratio().

The data is organized as follows. The Book class contains metadata and a list of pages. Each Page contains the paper data and a list of all graphics objects on the page. The following modules implement these:

Importing Files

To create a new importer you should create a new module in src/quill/importer and derive from quill.importer.base.ImporterBase. Its documentation will tell you which methods to override. An importer is essentially a factory object for the data model objects, so you will have to flesh it out by implementing functions that read your own fileformat and create the corresponding book object.

Exporting Files

To create a new importer you should create a new module in src/quill/importer and derive from quill.exporter.base.ExporterBase. Its documentation will tell you which methods to override. An exporter converts the notebook data model objects into your own file format, and does not have any access to the original (imported) file.

Indices and tables

Table Of Contents

Previous topic

Welcome to Quill Desktop’s documentation!

Next topic

A Single Notebook

This Page