Orca (previously Calamus) is a React Electron application for writing and publishing novels.
Orca is currently still in pre-alpha stages---not all features are available. For a feature roadmap, please visit our Project Board.
- Open format project files (json)
- Markdown Editor
- LanguageTool Integration
- Customizable Interface
- Print-ready PDF export
- Custom print formatting
Orca has what you need to organize and write your next novel. Organize your project into folders and use Markdown to make writing a breeze.
Orca stores all of your project data in a human readable json format. In addition, all book content is written using Markdown, making all of your work truly portable. You can export all of your book's content into markdown files at any time.
Orca project files use the .orca
file extension, but are really just json
files (yes this means you can edit .orca
files by hand, but it is not recommended!). See below for a table detailing the properties inside of a .orca
file.
Property Name | Description |
---|---|
bookTitle | The novel's title. |
bookSubTitle | YThe novel's sub title. This is an optional property. |
authorName | The novel's author name. |
seriesName | The name of the series the novel is a part of. This is an optional property. |
ISBN | The novel's ISBN number. |
language | The language the novel is written in. |
publisher | The name of the novel's publisher. |
content | Array containing the novel's content. See a table detailing the Section below. |
publishSettings | PublishSettings object. See a table detailing PublishSettings below. |
The content property contains a JSON array of the Section
object type, detailed below.
Property Name | Description |
---|---|
id | A uniquely generated identifier. |
name | The section's name. |
content | Minified string of markdown content. Newlines are replaced with \n and " with \" . |
type | Section type. One of 4 values: folder , maincontent , frontmatter , backmatter . |
canHaveChildren | true or false value indicating whether the Section can have children. Only valid for folder sections. |
children | A JSON array of Section[] . Only valid for folder sections. |
collapsed | true or false value indicating whether then section is collapsed. Only valid for folder sections. |
depth | Depth of the section in the tree. Starts at 0. |
index | Index of section related to its children. Starts at 0. |
parentId | For child sections, this is equal to the id of the section's parent |
The PublishSettings
object type contains the book's formatting settings for eBook and print PDF.
Property Name | Description |
---|---|
dropCap | Boolean value indicating whether or not to use a drop cap at the beginning of chapters. |
dropCapEnableAdvancedSettings | Boolean value for enabling advanced drop cap settings. |
dropCapFont | An advanced drop cap setting for setting the drop cap to a different font. |
dropCapLineHeight | An advanced drop cap setting for adjusting the line height of the drop cap. |
dropCapBottomMargin | An advanced drop cap setting for adjusting the bottom margin of the drop cap. |
leadIn | Lead in (first line of each chapter) type. Can be 'None', 'Small Caps', or 'Italics' |
sceneBreak | A string that will be used for scene breaks. Replaces horizontal rules. |
rectoPageHeaders | Header for recto (odd) pages. Can be 'None', 'Chapter Title', 'Book Title', or 'Author Name' |
versoPageHeaders | Header for verso (even) pages. Can be 'None', 'Chapter Title', 'Book Title', or 'Author Name' |
paragraphFont | Font to use for paragraph text. Can be any font installed on system. |
fontSize | Font size to use for paragraph text. |
lineHeight | Paragraph line height. Can be 'Single', '1.5', or 'Double'. |
dropFolio | Boolean value indicating whether or not to add a drop folio to the first page of each chapter. |
topMargin | Top margin of each page in inches. |
bottomMargin | Bottom margin of each page in inches. |
insideMargin | Inside margin of each page in inches. |
outsideMargin | Outside margin of each page in inches. |
trimSize | Trim size of the book. i.e., '5in x 8in' |
Orca is equipped to format your novel for Print and Ebook publication, with pre-made themes and endless customization.
preview.mp4
preview_live.mp4
Download the latest release here.
TODO
Clone the project
git clone https://github.com/midnightprioriem/orca.git
Go to the project directory
cd my-project
Install dependencies
yarn install
Start the app
yarn start
To run tests, run the following command
yarn test