summaryrefslogtreecommitdiff
path: root/public/assets/js/lesson-features.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/lesson-features.js')
-rw-r--r--public/assets/js/lesson-features.js55
1 files changed, 45 insertions, 10 deletions
diff --git a/public/assets/js/lesson-features.js b/public/assets/js/lesson-features.js
index 369c8f7..3634aa3 100644
--- a/public/assets/js/lesson-features.js
+++ b/public/assets/js/lesson-features.js
@@ -1,5 +1,8 @@
const valid_codeblocks = [ // supported sort-code keys
- 'youtube'
+ 'youtube',
+ 'spotify',
+ 'spotify-track',
+ 'world-data'
];
@@ -16,17 +19,21 @@ const symbol_escapes = [
var youtube_template = ( id => {
- return '<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/'+ id +'?rel=0&controls=0" title="YouTube video player" frameborder="0" allow="clipboard-write; encrypted-media; picture-in-picture; web-share" allowfullscreen></iframe>'
+ return '<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/'+ id +'?rel=0&controls=0" title="YouTube video player" frameborder="0" allow="clipboard-write; encrypted-media; picture-in-picture; web-share" allowfullscreen></iframe>';
});
-/*
-
-
-<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/6EA-MIYY1bg?controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
+var spotify_template = ( id => {
+ return '<iframe style="border-radius:12px" src="https://open.spotify.com/embed/episode/'+ id +'?utm_source=generator" width="100%" height="152" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>';
+});
+var spotify_track = ( id => {
+ return '<iframe style="border-radius:12px" src="https://open.spotify.com/embed/track/'+ id +'?utm_source=generator" width="100%" height="152" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>';
+});
-*/
+var owid_template = ( id => { // our world in data (explorer)
+ return '<iframe src="https://ourworldindata.org/explorers/'+ id +'?zoomToSelection=true&hideControls=true" loading="lazy" style="width: 100%; height: 480px; border: 0px none;"></iframe>'
+});
/** inject_codeblocks
@@ -51,6 +58,8 @@ function inject_codeblocks(code) {
// console.log(matches);
var output = code; // use a copy of (source) code
+
+ console.log(matches);
matches.forEach( match => {
// parse (every) match
@@ -59,15 +68,41 @@ function inject_codeblocks(code) {
// match[0] : `{{youtube=6EA-MIYY1bg}}`
// match[1] : `youtube=6EA-MIYY1bg`
// match[3] : the (source) code string
- let blockparts = unescaped_str( match[1] ).trim().split('=');
+
+ // let blockparts = unescaped_str( match[1] ).trim().split('=');
+ let blockparts = match[1].trim().split('=');
let target = blockparts[0].toLowerCase();
let id = blockparts[1];
// let label = escaped_str(blockparts[1]);
if (valid_codeblocks.includes(target)) {
- if (target == 'youtube') {
- var codeblock = youtube_template(id);
+ var codeblock = '';
+
+ console.log(target, id);
+
+ switch (target) {
+
+ case 'youtube':
+ codeblock = youtube_template(id);
+ break;
+
+ case 'spotify':
+ codeblock = spotify_template(id);
+ break;
+
+ case 'spotify-track':
+ codeblock = spotify_track(id);
+ break;
+
+ case 'world-data':
+ codeblock = owid_template(id);
+ break;
+
+ default:
+ codeblock = id;
+
}
+
output = output.replaceAll(match[0], codeblock);
}