Skip to content
This repository was archived by the owner on Sep 1, 2023. It is now read-only.

Mobiledoc editor (or: Build a Koenig-equivalent for Android/cross-platform)Β #41

@vickychijwani

Description

@vickychijwani

Background

First off: What is mobiledoc and how does it relate to Ghost? πŸ‘€πŸ‘‡

Where we are today

Currently Ghost Android only supports posts with a single Markdown card. Only such posts can be previewed and edited; for all other posts, the app refuses to open them at all. When creating a new draft, the app presents a basic Markdown editor, as it was before Ghost 2.0, with no notion of "cards" or any other rich content at the moment.

What needs to get done

Full mobiledoc support (which, to be clear, is not currently planned) would involve implementing the following pieces:

  • Rendering mobiledoc: Take mobiledoc as input, and render it on Android using native/Flutter/React Native widgets
  • Card-based editor: Building on top of the renderer, create a card-based editor for Android, similar to the one in Ghost Admin on the web or in Medium's mobile app (note: the Medium app presents the UI differently, but the fundamental unit of editing can still be interpreted as a "card"). Naturally, the editor should store/serialize its contents in the mobiledoc format.

This work can be further broken down: once a foundation for rendering and manipulating the mobiledoc format is laid, the various card types can be implemented separately (see here for an up-to-date list of what mobiledoc cards Ghost Admin supports).

Interested in helping out? This could be an opportunity to learn Flutter or React Native! ✨

Given the nature of this project, it's going to be quite well-isolated from the rest of the Ghost Android codebase, which means it'll be a lot easier for someone new to get started πŸš—πŸ’¨

If you're interested in helping out (or even if you think you might be interested but would like more details first), just add a comment in this thread πŸ’¬

Why Flutter/React Native?

  • This project is mostly UI so those frameworks should be a good fit; not many Android-specific APIs will be required
  • Well-isolated from the rest of Ghost Android, should be easier to embed/integrate
  • The editor could be reused in a future Ghost iOS app, and if things go well, it may well make sense to adopt the framework for a full-fledged cross-platform app πŸ‘»πŸ“±

One thing that is currently unclear is that although Flutter and React Native can both be embedded into existing apps, it is possible that some required APIs are missing, so some more exploration would be required before committing to one of these frameworks.

Of course, a pure native solution is also welcome.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions