We consider how decoding of clicks and drops might be extended to remote services without fundamentally changing the nature of wiki. We suggest this behavior be concentrated in a new plugin called "Also".
See Move to a Better Web for motivation.
Some authors consistently write pages that end with a "see also" block. I think much of what has been described for a future transporter could be captured in an Also plugin that among other things, renders these blocks and grants to the links they contain additional powers.
# Links
The Also plugin will recognize when links lead to available pages and these would work like normal federated wiki links. The Also plugin will have additional resolution logic: hence the name "Also". This logic will test for the presence and activity of a transporter. It transporting is possible, the remaining links will activate and activate the transporter when clicked.
Also links that have not yet been transported will be individually editable using the html5 content-editable property. The edited name along with whatever other identifying properties have been attached to an Also link will be delivered to the transporter.
See OpenAPI Specification for a transported page that approximates Also behavior using html forms. Try renaming the transported page to "Swagger History".
<form action='https://rest.livecode ...'> <input name=section_title size=60 value='History'> <input name=url type=hidden value='https:// ...'> <input type=submit value=create> </form>
See Weak Wholeness for more about good and bad linking between parts of a whole.
# Drops
Visible Also plugin will be consulted when a drop happens. Working right to left Also plugins with ready transporters will be offered the opportunity to handle the drop. If one elects to handle the drop they would be expected to either return a transported page or a future page that offers some alternatives to the author for completing the desired operation.
Untargeted drops are now handled using the generalized drop dispatcher. It is not clear that all of this machinery is available to plugins yet. github
.bind "drop", drop.dispatch page: (item) -> link.doInternalLink item.slug, null, item.site file: (file) -> readFile file
A core javascript drop handler might start with the page receiving the drop or the rightmost page in the lineup when drops occur beyond this. Using our usual discovery heuristics items could be examined for class 'drop-handler' and if present, offered a chance to consume the drop as a delegate of the core. The Also plugin would be the first to offer drop-handler.
# Mechanism
The Also plugin is only slightly more magical than the Reference plugin that offers modified link processing based on information it holds. Reference presents a distinct rendering and was improved when the paragraph it contains was visibly joined with the flag and link that makes it unique.
We can imagine rendering Also plugins as a bullet but should announce its special powers by enclosing it in the gray background that we use for other specialized plugins.
It is possible that a hover before drop could highlight the Also that will handle the drop so that a user in a complex environment can select handlers with some precision.
# Alternatives
Before we had transporters we had considered plugin support for scraping content directly where the editorial thought in how to import content was manifest on the page. See BBC World Service for a mockup.