{"action":"created","issue":{"url":"https://api.github.com/repos/WorldBrain/Memex/issues/236","repository_url":"https://api.github.com/repos/WorldBrain/Memex","labels_url":"https://api.github.com/repos/WorldBrain/Memex/issues/236/labels{/name}","comments_url":"https://api.github.com/repos/WorldBrain/Memex/issues/236/comments","events_url":"https://api.github.com/repos/WorldBrain/Memex/issues/236/events","html_url":"https://github.com/WorldBrain/Memex/issues/236","id":284444532,"number":236,"title":"Feature: Direct Linking / Link to quotes","user":{"login":"oliversauter","id":7870039,"avatar_url":"https://avatars2.githubusercontent.com/u/7870039?v=4","gravatar_id":"","url":"https://api.github.com/users/oliversauter","html_url":"https://github.com/oliversauter","followers_url":"https://api.github.com/users/oliversauter/followers","following_url":"https://api.github.com/users/oliversauter/following{/other_user}","gists_url":"https://api.github.com/users/oliversauter/gists{/gist_id}","starred_url":"https://api.github.com/users/oliversauter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oliversauter/subscriptions","organizations_url":"https://api.github.com/users/oliversauter/orgs","repos_url":"https://api.github.com/users/oliversauter/repos","events_url":"https://api.github.com/users/oliversauter/events{/privacy}","received_events_url":"https://api.github.com/users/oliversauter/received_events","type":"User","site_admin":false},"labels":[{"id":615211804,"url":"https://api.github.com/repos/WorldBrain/Memex/labels/Prio%201","name":"Prio 1","color":"fbca04","default":false},{"id":574511714,"url":"https://api.github.com/repos/WorldBrain/Memex/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"blahah","id":836040,"avatar_url":"https://avatars3.githubusercontent.com/u/836040?v=4","gravatar_id":"","url":"https://api.github.com/users/blahah","html_url":"https://github.com/blahah","followers_url":"https://api.github.com/users/blahah/followers","following_url":"https://api.github.com/users/blahah/following{/other_user}","gists_url":"https://api.github.com/users/blahah/gists{/gist_id}","starred_url":"https://api.github.com/users/blahah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blahah/subscriptions","organizations_url":"https://api.github.com/users/blahah/orgs","repos_url":"https://api.github.com/users/blahah/repos","events_url":"https://api.github.com/users/blahah/events{/privacy}","received_events_url":"https://api.github.com/users/blahah/received_events","type":"User","site_admin":false},"assignees":[{"login":"blahah","id":836040,"avatar_url":"https://avatars3.githubusercontent.com/u/836040?v=4","gravatar_id":"","url":"https://api.github.com/users/blahah","html_url":"https://github.com/blahah","followers_url":"https://api.github.com/users/blahah/followers","following_url":"https://api.github.com/users/blahah/following{/other_user}","gists_url":"https://api.github.com/users/blahah/gists{/gist_id}","starred_url":"https://api.github.com/users/blahah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blahah/subscriptions","organizations_url":"https://api.github.com/users/blahah/orgs","repos_url":"https://api.github.com/users/blahah/repos","events_url":"https://api.github.com/users/blahah/events{/privacy}","received_events_url":"https://api.github.com/users/blahah/received_events","type":"User","site_admin":false}],"milestone":null,"comments":15,"created_at":"2017-12-25T12:44:05Z","updated_at":"2018-05-09T14:35:02Z","closed_at":null,"author_association":"OWNER","body":"As discussed with @blahah and Charlie, we will pull forward the direct linking feature. \nIt will enable users to link to specific quotes of an article, instead of just the url. \nIt will also provide us with an ideal viral loop to aquire users. \n\n#### From my understanding today, there are 3 parts to this:\n1. The selection and anchoring of the highlights in an article\n1. The proxy server routing the traffic and injecting the code to highlight the specific text\n1. The interruption for new users to expose them to Memex and its features\n1. [Optional] the ability to search for those highlights > rank the words of the quote higher in search.\n\n### 1. Selection and anchoring\nSimilar to how hypothes.is does it. we would have a modal popping up, whenever a user selects a piece of text. It would show > \"highlight\" & \"link to quote\". \n![](https://user-images.githubusercontent.com/7870039/34339430-43dfcf20-e974-11e7-940d-21b961e1ef01.png)\n\nAlso we could put these options in the context menu:\n![](https://user-images.githubusercontent.com/7870039/34339446-6a549636-e974-11e7-8976-e96da64cf9be.png)\n\n#### Technical details\n@tilgovi,@bigbluehat & @Treora [rebuilt the annotator library](https://github.com/apache/incubator-annotator) that powers the Hypothes.is annotation software. The code will enable us to create an anchor to a piece of text.\nIt still awaits to become an npm package, but AFAIK it is functional. \n@Treora also built this [nifty demo](https://temp.treora.com/annotator-demo/index.html#selector(type=TextQuoteSelector,exact=annotated%20world)) to showcase its capabilities.\n\n### 2. Proxy server \nThe way I understood it, the proxy servers role is to inject the JS code into the loaded website a user is about to visit, so that the hightlights can be displayed. \nOur proxy would host a DB with all the quotes that have been made. Possibly already as a dat node we can replicate among several instances..\n\nImportant here is that the link created shows the social preview data of the link destination, not the proxy. \nTo get what I mean with that, try creating a post on social media with this link: https://hyp.is/d6o9PM67EeeGWFs6SrbDHg/www.nytimes.com/2011/10/19/nyregion/new-york-planting-a-million-treestoo-many-some-say.html\n\nAt Hypothes.is will show preview images of hypothes.is and the resulting quote, but nothing about the nytimes article. \n![](https://user-images.githubusercontent.com/7870039/34339696-d4e7fcce-e977-11e7-9f8f-53d440722e60.png)\n\nEarlier in the product life cycle of hypothes.is this routing to the information about the original article was still in place. Now it shows the red preview of hypothes.is. \nI find this undesirable, as the preview on social media gives important information about the article. We already will inject some \"ad like\" thing (see point 3) with the proxy. No need to annoy users even more or hinder their UX. \n\n#### Technical details:\nThis is the library built at Hypothes.is that facilitated the proxy: https://github.com/hypothesis/via\nMight offer some inspiration. \n\n### 3. Interruption for new users to expose them to direct link features\nWhenever a user clicks the links for direct linking, there is a loading screen (also hypothes.is has it). it is an ideal place to expose users to the features they could have by installing the Memex. \nWe can use it to notify non-memex-users that they just received a direct link and that they can do this as well, and also have other features, by downloading the memex extension. \nExisting Memex users should not have this in-between screen anymore and instead directly see the highlight. \n\nDesign of this screen is still TBD, most importantly, we need the functionality to work. \n\n### 4. Optional for later: Search highlights, show them in results list. @poltak \nIt would be useful to be able to search for the words of the highlights a person makes and rank the words higher. \nIf we don't get this in in the first iteration, we should definitely store the quotes in raw somewhere, so we can re-index them later and also display them alongside the pages in the results overview. \n\n### Known challenges:\n1. Hooking the highlights to the right url, even if it changes. For example the url could contain a query-string that changed and thus the URL is not the same anymore, even if the article is. \n1. We need to be persistent somehow. At the very early stage this would mean we need multiple servers, that make sure, the direct links are always reachable. \nLong-term, we need to think about a way so that those links work independently of worldbrain providing the proxy, so that they can resolved in any case. Maybe dat offers some things there as well @blahah?"},"comment":{"url":"https://api.github.com/repos/WorldBrain/Memex/issues/comments/387760109","html_url":"https://github.com/WorldBrain/Memex/issues/236#issuecomment-387760109","issue_url":"https://api.github.com/repos/WorldBrain/Memex/issues/236","id":387760109,"user":{"login":"oliversauter","id":7870039,"avatar_url":"https://avatars2.githubusercontent.com/u/7870039?v=4","gravatar_id":"","url":"https://api.github.com/users/oliversauter","html_url":"https://github.com/oliversauter","followers_url":"https://api.github.com/users/oliversauter/followers","following_url":"https://api.github.com/users/oliversauter/following{/other_user}","gists_url":"https://api.github.com/users/oliversauter/gists{/gist_id}","starred_url":"https://api.github.com/users/oliversauter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oliversauter/subscriptions","organizations_url":"https://api.github.com/users/oliversauter/orgs","repos_url":"https://api.github.com/users/oliversauter/repos","events_url":"https://api.github.com/users/oliversauter/events{/privacy}","received_events_url":"https://api.github.com/users/oliversauter/received_events","type":"User","site_admin":false},"created_at":"2018-05-09T14:35:01Z","updated_at":"2018-05-09T14:35:01Z","author_association":"OWNER","body":"Found another issue with the demo page: \r\nIf you try to create a second highlight after you did one, the page hangs itself and crashes after afterwards."}}
{"actor":{"display_login":"oliversauter"}}