diff options
author | Sheogorath | 2019-01-25 23:45:56 +0100 |
---|---|---|
committer | Sheogorath | 2019-02-21 01:26:37 +0100 |
commit | c5ca7b634a47e8d1b22b8cbf19c827d2262b8dcb (patch) | |
tree | f5ecdde4f1d3c9b81908b8877065b516e2b6dc24 /public/js | |
parent | 806f403045c292c30fa217a8a32973ba71587c5d (diff) |
Remove broken speakerdeck embedding
The current speakerdeck implementation is broken. An alternative
implementation using oembed doesn't work due to CORS, which could be
solved by proxying the speakerdeck API, but we decided to not do this.
This patch provides the link to the speakerdeck presentation instead,
and this way doesn't break existing notes. This is right now the best
solution we could come up with.
Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
Diffstat (limited to 'public/js')
-rw-r--r-- | public/js/extra.js | 35 |
1 files changed, 7 insertions, 28 deletions
diff --git a/public/js/extra.js b/public/js/extra.js index 76e95635..f8e0eb22 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -459,34 +459,13 @@ export function finishView (view) { // speakerdeck view.find('div.speakerdeck.raw').removeClass('raw') .each((key, value) => { - const url = `https://speakerdeck.com/oembed.json?url=https%3A%2F%2Fspeakerdeck.com%2F${encodeURIComponent($(value).attr('data-speakerdeckid'))}` - // use yql because speakerdeck not support jsonp - $.ajax({ - url: 'https://query.yahooapis.com/v1/public/yql', - data: { - q: `select * from json where url ='${url}'`, - format: 'json' - }, - dataType: 'jsonp', - success (data) { - if (!data.query || !data.query.results) return - const json = data.query.results.json - const html = json.html - var ratio = json.height / json.width - $(value).html(html) - const iframe = $(value).children('iframe') - const src = iframe.attr('src') - if (src.indexOf('//') === 0) { iframe.attr('src', `https:${src}`) } - const inner = $('<div class="inner"></div>').append(iframe) - const height = iframe.attr('height') - const width = iframe.attr('width') - ratio = (height / width) * 100 - inner.css('padding-bottom', `${ratio}%`) - $(value).html(inner) - if (window.viewAjaxCallback) window.viewAjaxCallback() - } - }) - }) + const url = `https://speakerdeck.com/${$(value).attr('data-speakerdeckid')}` + const inner = $('<a>Speakerdeck</a>') + inner.attr('href', url) + inner.attr('rel', 'noopener noreferrer') + inner.attr('target', '_blank') + $(value).append(inner) + }) // pdf view.find('div.pdf.raw').removeClass('raw') .each(function (key, value) { |