Live Editor

Philosophy

  • The Live Editor is a Grow extension that creates an interactive content management environment for mangaging Grow projects.
  • Pages should be constructed to be compatible with the Live Editor, even if the Live Editor is not being actively used for a project. This ensures that pages will be editable by non-Git users in the future, if that becomes a requirement.

Ensure site-wide editor compatibility

  • Leverage partials, and the partial loop.
  • Partials should be constructed to work in isolation, independent of their position on the page and their relationship with adjacent partials.
  • Long-form text content should generally rely on Markdown or HTML documents, and not a list of partials. In other words, do not create a separate partial for every paragraph on a page. This is too complicated to use in practice, and an antipattern.

Ensure ease of use

Site developers get to choose which options of a partial are exposed in the editor UI to stakeholders. This is done by managing the front matter of a partial.

  • Avoid making too many fields editable – "when everything is editable, nothing is."
  • Expose "as little as possible, but as much as necessary".
  • Partials should expose just enough fields to facilitate typical content management flows.
  • Typically, strings, images, URLs, and other content/data should be exposed.
  • Avoid exposing internal options of a partial in the editor UI.
  • Minimize room for error of partial configuration by non-developers.