hugo-theme-zzo/layouts/shortcodes/twitterTimeline.html

66 lines
1.7 KiB
HTML
Raw Permalink Normal View History

2020-04-02 00:48:57 +00:00
{{ $id := substr (md5 .Inner) 0 16 }}
<div id="{{ $id }}">
</div>
<script>
'use strict';
var id = JSON.parse({{ $id | jsonify }});
var root = document.getElementById('root');
{{ $href := (.Get "href") }}
var href = JSON.parse({{ $href | jsonify }});
{{ $height := (.Get "height") }}
var height = JSON.parse({{ $height | jsonify }});
{{ $width := (.Get "width") }}
var width = JSON.parse({{ $width | jsonify }});
{{ $inner := .Inner }}
var inner = JSON.parse({{ $inner | jsonify }});
function makeCard() {
var card = document.createElement('a');
card.setAttribute('class', 'twitter-timeline');
card.setAttribute('href', href);
card.setAttribute('data-chrome', 'nofooter');
var script = document.createElement('script');
script.setAttribute('src', 'https://platform.twitter.com/widgets.js');
script.setAttribute('charset', 'utf-8');
if (height) {
card.setAttribute('data-height', height);
}
if (width) {
card.setAttribute('data-width', width);
}
if (inner) {
card.textContent = inner;
}
var themeOption = root.getAttribute('class');
if (themeOption.includes('light') || themeOption.includes('solarized')) {
card.setAttribute('data-theme', 'light');
} else {
card.setAttribute('data-theme', 'dark');
}
var timeline = document.getElementById(id);
timeline.innerHTML = '';
timeline.appendChild(script);
timeline.appendChild(card);
}
var twitterCards = document.querySelectorAll('.twitter-timeline');
if (twitterCards) {
window.addEventListener('message', function (e) {
if (e.data.type === 'set-twitter-theme') {
makeCard();
}
});
}
makeCard();
</script>