Giter Site home page Giter Site logo

zachhannum / orca Goto Github PK

View Code? Open in Web Editor NEW
21.0 2.0 1.0 11.01 MB

React Electron App for Writing and Publishing Novels

Home Page: https://orcawriter.app

License: GNU Affero General Public License v3.0

TypeScript 97.64% JavaScript 1.62% CSS 0.46% EJS 0.28%
electron react macos reactjs self-publishing windows-desktop writing markdown markdown-editor

orca's Introduction

logo

Orca

Write and Publish Novels With Ease

Build and Test Release github release version github release downloads

app

๐ŸŒŸ About the Project

Orca (previously Calamus) is a React Electron application for writing and publishing novels.

๐ŸŽฏ Features

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

๐Ÿ–Š๏ธ Write Your Next Novel

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.

๐Ÿ‘ Open Format

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 Format

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'

๐Ÿ“• Print-ready PDF and EBook

Orca is equipped to format your novel for Print and Ebook publication, with pre-made themes and endless customization.

preview.mp4
preview_live.mp4

โš™๏ธ Installation

Download the latest release here.

โŒจ๏ธ Contributing

๐Ÿ“œ Contribution Guidelines

TODO

๐Ÿƒ Run Locally

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

๐Ÿงช Running Tests

To run tests, run the following command

  yarn test

๐Ÿ’Ž Acknowledgements

orca's People

Contributors

zachhannum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

coborski

orca's Issues

Cloud Storage

Implement the ability to store and backup books on the cloud

Help

Implement help pages

Outlining Tools

Implement tools to help outline/brainstorm. This should be broken out into more granular issues.

Glossary Support

Support for custom glossary for characters, locations, etc. including autocomplete and inline tagging.

Refactor writer to use Markdown formatting and decorators

The current implementation of the Writer uses rich text which obfuscates the markdown source and overcomplicates things.

A potential better approach would be something similar to Ulysses which uses plain text, but decorates the text with markdown syntax in a way that diminishes the markup (while leaving it accessible).

Import

Implement book import options

About

Implement about page

Project Files Structure

Design and implement project structure, including book metadata, format/publish settings, section/source files (stored in markdown), etc.

For now, this will be a single json file with project settings, and separate markdown files for each chapter referenced with relative paths, making a project folder.

Comment and Edit Tools

Implement comments and other edit/drafting tools for reviewing book content, similar to Google Docs with suggested edits, etc.

Updates

Implement check for updates flow

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.