Federated wiki is proud of its so called Collaborative Link which gives page mobility but confounds interpretation of wiki as a static artifact. Here we consider how plugins participate in the interpretation of links especially when they look beyond pages on the screen.
# History
In the past we would accept a plugin resolving links with whatever context it chose to construct when the plugin emitted content into the dom. Early wiki showed the chosen context in the hover text over links rendered on the screen. When it came time to perform the context-guided click handling this text was parsed to retrieve the chosen context.
Eventually more advanced plugins were provided core javascript functions that would resolve collaborative links with context constructed by the plugin. This allows context to be constructed dynamically based on whatever the plugin might have done.
Both the algorithmic drawing and the headless testing have problems with this dom based communication.
# Alternatives
We see several ways that both drawing and testing could understand what plugins intend to do.
Convention: When a story item has a site field, add that to the context for links found in the text.
Static Inquiry: When interpreting an item, load and run some preliminary analysis using the plugin's implementation.
Dynamic Inquiry: When interpreting an item, accept that the plugin will promise such link analysis eventually.
# Exploration
All three of these approaches can be done without interacting with the dom. Dynamic Inquiry is the most difficult to do right since we can expect the user/tester will be interacting with the system in unspecified ways while the plugin completes its analysis.
Here is a lineup for which there is a test. wiki
It is instructive to hover over many links in this lineup and confirm the search paths (context) shown is correct. The current test fails when it tries to click Chorus of Voices because it can't yet see the link, let alone resolve it properly.
Now is a good time to experiment with Convention and Static Inquiry enough to make this pass. Then we can discuss how much further into Dynamic Inquiry to go.