A conceptual draft.
The amount of feature requests demanding for support of other node types increases. We already have uploads and uploaded image support, and with a patch there is support for attachments, too. In general, we also partially compete against node_attach.module, which performs great for inling other nodes. Then there is img_assist which does a great job for inlining images.
So I thought about a API solution much like the way other modules provide it. Basically we're speaking about inlining of
- content attached to a node, f.e. uploads, attachments or audio files
- content stored in another node, f.e. videos, audio, stories, pages, ...
Support for each inline content could be supplied through include files, i.e. upload_file.inc, attachment.inc, filestore.inc, audio.inc, node.inc, cck_file.inc and so on. As you can see, this list mixes node attachments with node types of third modules. They should reside in a subdirectory of inline. Each of these plugins has to provide content meta data and theming.
Inline functions, such as automatically inlining uploads as images could be provided through contrib modules, f.e. inline_image.module.
Includes and functions should be addons/plugins, allowing site administrators to de-/activate them through inline settings. Each plugin might add own plugin settings to adjust the output of inline.
The greatest concern regarding this API probably is the notation of inline tags. First of all we might have to weight all activated plugins to handle overlappings between plugins, f.e. applicable to parallely activated upload and attachment module (bad example). Thus,
[inline:#] has to be applied to one of both node attachments.
Secondly, inline needs a way to differ between node attachments and other node types. Whilst
[node:#] works great for node_attach.module's job, this wouldn't be possible with inline module.
Each plugin might use additional inline API features, f.e. inserting node attachments with a click. A inline_assist.module leveraging this API is also worth thinking about (Obviously this would be based on the great work of img_assist.module and supersede it).
These thoughts incorporate current developments for inline, such as a new annotation for inline tags which is discussed here; advanced theming for uploads here; adding uploads with a click here; adding support for attachments or flash and video; and preventing the use numeric tags here.
It's time for a monster brainstorming.