From 03bafe98b00a83e222df537de27f3c44f2cac5be Mon Sep 17 00:00:00 2001 From: noface Date: Sun, 27 Nov 2016 00:22:34 +0100 Subject: [PATCH] Add function cover preview. --- src/Linkification/Embedding.coffee | 23 +++++++++++++++++++++-- src/config/Config.coffee | 5 +++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/Linkification/Embedding.coffee b/src/Linkification/Embedding.coffee index e81a50201..3a92b896a 100644 --- a/src/Linkification/Embedding.coffee +++ b/src/Linkification/Embedding.coffee @@ -1,6 +1,6 @@ Embedding = init: -> - return unless Conf['Embedding'] or Conf['Link Title'] + return unless Conf['Embedding'] or Conf['Link Title'] or Conf['Cover Preview'] @types = {} @types[type.key] = type for type in @ordered_types @@ -31,12 +31,13 @@ Embedding = return process: (link, post) -> - return unless Conf['Embedding'] or Conf['Link Title'] + return unless Conf['Embedding'] or Conf['Link Title'] or Conf['Cover Preview'] return if $.x 'ancestor::pre', link if data = Embedding.services link data.post = post Embedding.embed data if Conf['Embedding'] Embedding.title data if Conf['Link Title'] + Embedding.preview data if Conf['Cover Preview'] services: (link) -> {href} = link @@ -119,6 +120,22 @@ Embedding = $.extend data.link, <%= html('[${data.key}] Title Link Blocked (are you using NoScript?)') %> return + preview: (data) -> + {key, uid, link} = data + service = Embedding.types[key].preview + $.on link, 'mouseover', (e) -> + src = service.call uid + el = $.el 'img', + src: src + id: 'ihover' + $.add d.body, el + UI.hover + root: link + el: el + latestEvent: e + endEvents: 'mouseout click' + asapTest: -> el.height + cb: click: (e) -> e.preventDefault() @@ -418,4 +435,6 @@ Embedding = for item in data.items when item.id is uid return item.snippet.title 'Not Found' + preview: -> + "https://img.youtube.com/vi/#{@}/0.jpg" ] diff --git a/src/config/Config.coffee b/src/config/Config.coffee index 7dd5a36d6..a9ad77223 100644 --- a/src/config/Config.coffee +++ b/src/config/Config.coffee @@ -136,6 +136,11 @@ Config = 'Replace the link of a supported site with its actual title.' 1 ] + 'Cover Preview': [ + true + 'Show preview of links on hover.' + 1 + ] 'Embedding': [ true 'Embed supported services. Note: Some services don\'t work on HTTPS.'