question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Feature: New Mobiledoc Editor

See original GitHub issue

The Ghost editor is based on a 3 year old split-screen markdown-editing concept, which is now somewhat long-in-the-tooth. Modern WYSIWYG editors like Quip, Draft, Editorially or Dropbox’s Paper have shown what can be achieved when you leave old-style WYSIWYG behind… and it’s awesome 🎉

The 3 key problem areas with the current editor are:

  • our markdown parser is buggy and limited (markdown itself is limited).
  • split-screen doesn’t provide a great UX, especially on longer documents and restricts our screen space for adding editorial tools.
  • The current editor is not customisable or configurable.

These 3 issues are the fundamental problems that we are want to address by refreshing the editor. However, when we look closely at the existing editor, there’s a deeper set of problems. We feel we’ve outground both markdown-only and the split-screen concepts. Markdown-only is limiting in terms of features and exclusive in terms of users. The split-screen is flawed and takes up insane amounts of screen real-estate that could (and should) be used for more advanced editorial features.

The future is Mobiledoc

Moving forward, we want to build ourselves an editor for the future. We want to support more advanced editorial features out-of-the-box, whilst also enabling users to customise the editor to suit their specific use cases. To do all this, we need an underlying editor technology that will support us all the way form a basic editing surface through to customisations and collaboration.

After reviewing the editor technologies that are around, we settled on experimenting with an editor based on mobiledoc kit.

Mobiledoc is not an editor itself, it is a document format for article-style content. Mobiledoc-kit solves the fundamental problem of browser editors: the fact that the HTML you interact with when editing in the browser is different to the HTML that will be output when your content is viewed.

Mobiledoc also has a built-in concept of extensible “cards” or blocks of content. Each card has 3 conceptual parts: the stored content, the interface for editing the content, and the renderer for outputting the content. This feature allows us to create a simple way to extend our editor with all manner of layout & embed features.

In addition to all this, Mobiledoc has an amazing team behind it. It’s built to work for Ember, by people who are also part of the Ember core team. It’s being sponsored by Bustle, who are already using it in production. We’re excited to be able to get involved, and help champion this new technology as the way forward for web-based editors.

The initial plan 😁

Building a whole new editor is going to take time and patience to get perfect. That’s part of the reason that we’re currently shipping weekly alphas. The first iteration of the editor is coming in alpha 2, and by the time we ship Ghost 1.0, we’re hoping to have the following features:

  • A single-pane WYSIWYG editor space that supports all the features of mobiledoc, which will include a toolbar, unlike our existing editor. Mobiledoc covers basic text formatting like bold and italic, making them available using keyboard shortcuts, markdown syntax or the toolbar, depending on your preference. Mobiledoc should provide everything you need for long-form editorial writing.
  • An HTML card, which allows for embeds and writing full-HTML to format your text when mobiledoc is not enough. This is the ultimate fall-back card, and will allow you to add anything from fancy pull-quotes to fully interactive graphs to your posts.
  • An image card, for easy uploading of one or more images. This will also provide support for basic layout options, captions, and eventually more advanced features like slideshows.
  • The markdown card, for those of you who still love markdown 😍 This will also be used to provide some backwards compatibility with content from the old editor.

As well as these individual cards we’ll be ensuring that all the peripheral behaviours work as well as possible, including editing, undo/redo behaviour, keyboard shortcuts, the toolbar, dragging and dropping cards, adding more markdown-style formatting command, using notion-style / commands to add cards and tonnes more details that you’ll only notice if they’re not right 😉

The initial version of this editor will be landing in alpha, without backwards compatibility. Over the next few weeks, we will be iterating on the editor, adding more features, polishing the UI and eventually implementing basic backwards compatibility.

This first phase is largely an experiment. Attempting to lay foundations for advanced tools and customisations, setting up the building blocks that will see us long into the future. Along side this, we will be adding tooling around images for handling optimisations and serving different sizes. The possibilities for advanced tooling are pretty much endless once we’ve got these basic pieces in place. We’re also aiming for crazy levels of customisation, with custom cards, templates and other configurable options, however we don’t expect to ship these in full until after Ghost 1.0.

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Reactions:36
  • Comments:7 (5 by maintainers)

github_iconTop GitHub Comments

2reactions
ebaugercommented, Dec 12, 2016

It’s just an ideal. I just see this prototype UI from producthunt.com and look simple and effective.

https://bold.io/

2reactions
ErisDScommented, Oct 7, 2016

@vickychijwani the new editor will use mobiledoc, not markdown. The plan for the markdown card is that it will match the current editor.

Obviously EVERYONE is going to need a way to migrate their content, but there will not be a normal upgrade path from LTS to v1.0. We haven’t 100% decided how we’re going to handle migrations at this point, but that is not a point for discussion on this issue 😉 Have a read of https://dev.ghost.org/lts/ and if you have more questions please swing by slack.

Read more comments on GitHub >

github_iconTop Results From Across the Web

bustle/ember-mobiledoc-editor - GitHub
A Mobiledoc editor written using Ember.js UI components and Mobiledoc Kit. Additionally, ember-mobiledoc-editor supports the creation of Mobiledoc cards as ...
Read more >
mobiledoc-kit - v0.15.0 - GitHub Pages
Mobiledoc Kit is a framework-agnostic library for building WYSIWYG editors supporting rich content via cards. Libraries. This repository hosts the core ...
Read more >
react-mobiledoc-editor - npm
A Mobiledoc editor for React apps. Latest version: 0.14.4, last published: a month ago. Start using react-mobiledoc-editor in your project ...
Read more >
Use Mobiledoc-Kit to build an auto-linking text editor - Medium
Mobiledoc -Kit is a library for building WYSIWYG editors supporting rich content via cards. It was developed by our team at 201 Created...
Read more >
vue-mobiledoc-editor - npm Package Health Analysis | Snyk
a vuejs mobiledoc editor For more information about how to use this package see README. Latest version published 5 years ago. License: Unknown....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found