Hey there, I’m looking at custom integrations I would like to expose through the Ghost Admin & Ghost Editor experiences.
I don’t see any clear guidance on how to go about this from the Developer Documentation.
There are a variety of circumstances where additional UI exposure is likely to be useful.
Media Library
One example is the oft-requested Media Library functionality. An enterprise customer may have approved media assets for use, exposed through a Digital Asset Management platform (DAM) such as Nuxeo.
When using a DAM, I expect to be able to search for and locate content to place into a post or page in Ghost, likely with thumbnail renderings of the content, etc. This functionality is all provided by the DAM, but would need to be rendered in the Ghost UI and styled appropriate to the active Ghost admin theme.
New or Custom Content Blocks
In the editor experience, being able to create new Gutenberg Block types for use in the editor is a powerful way to extend any content platform’s capabilities. This could be by manipulating an existing block type such as an image gallery to instead provide a time carousel, and offer timing configuration in the UI. OR this could be a kind of unique content block meeting certain guidelines like a table of data formatted in a common way.
As an aside, why do we not have support for table blocks in Ghost? I know I could do this via Markdown or HTML … many of my target authors however do not and would need more of a WYSIWYG interface to generating that type of content.
A custom block from an integration would allow simpler embeds via URL as well. Images from a pre-connected S3 bucket for example, or a DAM integration (as suggested above), or an interactive chart from a tool like Tableau or PowerBI for example … are all powerful additions.
Real-time Preview
Another use case would be rendering a realtime previous of the post / page for the purposes of an author being able to see truly how the post / page is rendered including the visual application of the active theme. Clicking to preview outside the admin UI doesn’t have to be necessary. It’s useful, yes. But if I can use a toggle on the post / page settings to activate a real-time preview when I mouse-over some area on-screen, it’s going to save me lots of clicks and time.
Admin UI for Integration Configuration
Yet another use case is simply to allow UI in the admin console for configuring a common integration without resorting to header / footer code injection or HTML embed. Granted those are powerful, but hardly turn-key if needing to expose something for frequent configuration.
An example could adding buttons to export a given post / page to various formats to both the lists of posts / pages, as well as to the post / page settings sidebar. Or perhaps to allow a more complex workflow where publication requires approval from another user role such as an editor.
I’ve considered perhaps the use of tools like Tonkean or Zapier to allow an author to craft their articles using Office 365 or Google docs, provide for a human in the middle module workflow and once “approved” through all necessary stages the tools could push the content into Ghost via API … but that whole process seems heavier on both the people and the number of technologies than finding ways to extend functionality in Ghost with integrations.
Can someone point me to any details on if/how these things would be made possible? I’d love to find ways to contribute this type of stuff to the product and the community.