I suppose this can be done in a plugin, but let me explain a bit more. I suppose I misframed this topic by describing it as a onebox question. Yes, a better onebox for hypothes.is would be nice. But I think there is much, much more to be gained for discourse from a closer integration of hypothesis (or supporting Open Annotation more generally). Honestly, I think this is huge:
But let’s stay focused and figure out how discourse might use hypothesis. The most obvious use seems to be that it allows for a much smoother quoting of external webpages. Not the url but any specific piece of text on that page.
Concretely: I navigate to some website that I want to refer to in my discourse post, I highlight the snippet I want to quote and save it. Hypothesis gives me a link to that specific annotation and I simply paste it into my post. Currently, it is rendered like this:
(Note the misleading url and image)
But it should be very easy to make it render like this:
From: The Day The Trackbacks Died at https://blog.codinghorror.com:
I want to read your response to my posts, whether it’s on your site, or mine as a comment. So rather than relying on direct peer-to-peer links, I’m exploring the use of external indexing services.
By default, hypothesis only provides public links for annotations, not for highlights, which means you have to write a comment into hypothesis even if you just want to share the text snippet you are commenting on, but nobody forces discourse to display that comment. (The UX problem remains, though, that it doesn’t make sense to type the same comment both into hypothesis and into discourse, but I think a solution could be found here.) So I in my mockup, I have stripped the annotation that is shown in the onebox.
So that would be discourse referring to the world. The other way around would, of course, also be nice. In principle this already works: a discourse post can be annotated just like any other website (or pdf, BTW). The problem is, it only works if you have the Hypothesis Extension for Chrome installed because Discourse doesn’t like being shown in an iframe which means the hypothesis’ proxy solution (called “via”) doesn’t work with discourse forums. Which is a pity.
This can be solved in at least two ways:
- Let discourse be iframed by via.hypothes.is
- Customize discourse to include this JS snippet:
<script src="https://hypothes.is/embed.js" async></script>
The problem with the embedded JS is that you will have the hypothesis sidebar displayed on the right edge of your screen (though perhaps it can be configured so that it is only displayed when some explicitly requests to see a specific annotation, i.e. people following an annotation link.)
So there is some food for thought…
PS: Not only does discourse need hypothesis, hypothesis obviously needs a discourse forum