These are some great ideas! Seems to me like 3 related but different features:
- Customize entity references. These need almost certainly to be single line, and collapse/expand is probably not easy to support since they can be in-line. When an entity reference is within a larger paragraph, how do you sensibly expand its contents?
- Expandable in-line entity embed. This could work similar to a reference as-above, but would likely be its own block.
- In-line pop-up “quick fill” for entity fields when created from e.g. selected text.
I think these are all good concepts, and I have some further thoughts on #1 (though some of my concerns may be irrelevant; I’ll leave it to Michael and team to determine that ).
I think the most obvious and hopefully easiest thing to implement here would be using the variables for each field name, much like the formula editor does. In fact a formula editor-like experience would be great, but even just a one-line input field for specifying each “template” (with a separate field for the name of the template I guess), and in-line search/auto-complete would work well I think. So it’d be something like
[Name][Creation Date][Created By] would produce e.g.
Task one 13/7/2021 Oshyan or if you wanted to get a little fancier,
[Name] created on [Creation Date] by [Created By] = a reference that reads:
Task one created on 13/7/2021 by Oshyan. And any field where it makes sense to allow interaction would do so (this could be something additionally controllable, but it seems overkill in my view).
It’d be even easier if it were a dedicated UI like the formula editor, with a list of available field names, etc. I imagine that should be easy enough to implement as well. But basically I favor a super simple implementation of this, akin to what programs like Lightroom have done for their variable-based file output naming options. Something that is flexible and powerful and simple enough to use, but won’t take a long time to implement (hopefully).
Probably you’d want it to just default to the selected default template. Which would be specified in the Type definition somewhere I guess. And then have an option on every reference (in e.g. a rich text) to change the template used for that particular reference.