summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSheogorath2019-01-25 23:45:56 +0100
committerSheogorath2019-02-21 01:26:37 +0100
commitc5ca7b634a47e8d1b22b8cbf19c827d2262b8dcb (patch)
treef5ecdde4f1d3c9b81908b8877065b516e2b6dc24
parent806f403045c292c30fa217a8a32973ba71587c5d (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 '')
-rw-r--r--public/docs/features.md3
-rw-r--r--public/js/extra.js35
2 files changed, 7 insertions, 31 deletions
diff --git a/public/docs/features.md b/public/docs/features.md
index a4ffb633..e7ce89ce 100644
--- a/public/docs/features.md
+++ b/public/docs/features.md
@@ -222,9 +222,6 @@ When you’re a carpenter making a beautiful chest of drawers, you’re not goin
### SlideShare
{%slideshare briansolis/26-disruptive-technology-trends-2016-2018-56796196 %}
-### Speakerdeck
-{%speakerdeck sugarenia/xxlcss-how-to-scale-css-and-keep-your-sanity %}
-
### PDF
**Caution: this might be blocked by your browser if not using an `https` URL.**
{%pdf https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf %}
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) {