This is the Editoria monorepo.
It consists of the main Editoria application, as well as the different Pubsweet components and helper libraries that the app is made of.
This application is being developed by the Coko Foundation, for the University of California Press.
For more information, visit the project's website or our chat channel.
For the editor that Editoria uses, see its related project Wax.
The current features on our list are the following:
Module | Description | In progress | Done | Issue |
---|---|---|---|---|
Current | ||||
System | Edit Lock | ✔ | #117 | |
System | Use docker containers for deployments | #89 | ||
System | Logger | ✔ | #106 | |
System | Env variables | ✔ | #104 | |
Book builder | Redesign component state tool | #55 | ||
Book builder | Export EPUB | #79 | ||
Book builder | Filenames for single uploads | #112 | ||
Editor | Code Block | ✔ | wax/wax#174 | |
Editor | Add ornament style | ✔ | wax/wax#178 | |
Export | Fix links | #100 | ||
Export | Fix image captions | #113 | ||
Export | Notes at the end of the book | #78 | ||
Previous | ||||
System | Switch to Postgres | ✔ | #80 | |
System | Implement roles & authorization | ✔ | #57 | |
System | Integrate with Manifold | #2 | ||
Book builder | Introduce unnumbered chapters | ✔ | #50 | |
Editor | Improve editor performance | ✔ | wax/wax#120 | |
Editor | Image captions | ✔ | wax/wax#127 | |
Editor | Keyboard shortcuts to add diacritics | ✔ | wax/wax#129 | |
Editor | Turn spell-check on and off | ✔ | wax/wax#124 | |
Editor | Small caps style | ✔ | wax/wax#125 | |
Editor | Note callout deletion with track changes | ✔ | wax/wax#36 | |
Editor | Cutting and pasting with track changes | ✔ | wax/wax#15 | |
Editor | Track spaces | ✔ | wax/wax#119 | |
Editor | Full Screen Mode | ✔ | wax/wax#150 | |
Editor | Track inline formatting (eg. italics) | ✔ | wax/wax#160 | |
Editor | Track block formatting (eg. headings) | wax/wax#40 | ||
Editor | Expand set of special characters | wax/wax#128 | ||
Editor | Text highlighter | ✔ | wax/wax#18 | |
Editor | Arrow navigation between notes | ✔ | wax/wax#133 | |
Editor | Update note icon in toolbar | ✔ | wax/wax#126 | |
Editor | Increase font size for text | |||
Document ingestion | Normalize en and em dashes, convert hyphens between numerals to en dashes | ✔ | XSweet/editoria_typescript#21 | |
Document ingestion | Clean up white space (around punctuation, multiple spaces) | ✔ | XSweet/editoria_typescript#21 | |
Document ingestion | Convert series of periods to ellipses | ✔ | XSweet/editoria_typescript#21 | |
Document ingestion | Normalize directional quotes and apostrophes | ✔ | XSweet/editoria_typescript#21 | |
Document ingestion | Convert underlining and bolding to italics | ✔ | XSweet/editoria_typescript#29, XSweet/editoria_typescript#21 | |
Document ingestion | Force punctuation to match formatting of preceding word | ✔ | XSweet/HTMLevator#3 | |
Document ingestion | Improve header promotion | ✔ | XSweet/XSweet#123 |
Get your copy of the repository.
git clone https://gitlab.coko.foundation/editoria/editoria.git
cd editoria
Make sure you use you use node >= 8.3
.
To determine which version of Node you are running type node -v
.
If the version is not 8.3 or greater you will need to use nvm to prescribe a specific node version. Installation of nvm is covered here https://github.com/creationix/nvm#installation
Once nvm is installed use the command nvm install 8.3
For further information on how to use nvm see https://www.sitepoint.com/quick-tip-multiple-versions-node-nvm/
npm install -g yarn
Install all dependencies and navigate to the editoria app folder.
yarn
cd packages/editoria-app
Create a config/local-development.json
file.
Edit that to enter your database secret, as well as to connect to INK.
In this file, add the following:
{
"pubsweet-server": {
"secret": "<your-secret-here>"
},
"pubsweet-component-ink-backend": {
"inkEndpoint": "< your-ink-api-endpoint >",
"email": "< your-ink-email >",
"password": "< your-ink-password >",
"recipes": {
"editoria-typescript": "< editoria-typescript-recipe-id >"
}
}
}
Ensure that:
- the
<your-ink-api-endpoint>
inlocal-development.json
ends with a trailing slash - if INK is running as a service on a port, it is on port
3000
Create a database and enter credentials for an admin user account:
yarn resetdb
Follow the prompts to enter user credentials and complete the database setup.
Note: If you want to use a non-default database, see Pubsweet development setup.
Get the database docker container up and running:
yarn start:services
You're good to go. Open a separate terminal in the same folder and run the app with:
yarn server
see also the Pubsweet wiki for developer notes.