118 lines
3.2 KiB
HTML
118 lines
3.2 KiB
HTML
<html>
|
|
<head>
|
|
<style>
|
|
img {
|
|
width: 480px;
|
|
}
|
|
.item {
|
|
border: 1px solid lightgrey;
|
|
padding: 8px;
|
|
margin-left: 8px;
|
|
margin-bottom: 50px;
|
|
}
|
|
/* Blur transcript by default */
|
|
.transcript {
|
|
filter: blur(2px);
|
|
}
|
|
/* Show transcript when holding the mouse over */
|
|
.transcript:active {
|
|
filter: blur(0px);
|
|
}
|
|
body {
|
|
font-family: sans-serif;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
|
|
<p><a href="https://www.matrixfans.net/movies/the-matrix/transcript/" target="_blank">Matrix 1 full transcript</a></p>
|
|
|
|
<!-- Templates -->
|
|
<script>
|
|
var itemTemplate = `
|
|
<div class = "item">
|
|
<h1><span id="who-%ID%"></span>: <a id="zh-%ID%" href="https://www.archchinese.com/chinese_english_dictionary.html?find=%ZH%" target="_blank"><a></h1>
|
|
<img id="img-%ID%" />
|
|
<p id="en-%ID%"></p>
|
|
<p id="tr-%ID%" class="transcript"></p>
|
|
<p><audio id="audio-%ID%" style="display: none" controls autoplay></audio></p>
|
|
</div>
|
|
`
|
|
</script>
|
|
|
|
<!-- English, Chinese, and transcription -->
|
|
<script>
|
|
var texts = {
|
|
1: {
|
|
who: "?",
|
|
en: "?",
|
|
zh: "?",
|
|
tr: "?",
|
|
},
|
|
/*
|
|
99: {
|
|
who: "?",
|
|
en: "?",
|
|
zh: "?",
|
|
tr: "?",
|
|
},
|
|
*/
|
|
};
|
|
</script>
|
|
|
|
<!-- Base64 encoded audio files -->
|
|
<script>
|
|
var b64Audios = {
|
|
};
|
|
</script>
|
|
|
|
<!-- Base64 encoded image files -->
|
|
<script>
|
|
var b64Images = {
|
|
};
|
|
</script>
|
|
|
|
<!-- Configure the page -->
|
|
<script>
|
|
// Create items in HTML.
|
|
for (var i in texts) {
|
|
document.body.innerHTML += itemTemplate
|
|
.replaceAll("%ID%", i)
|
|
.replaceAll("%ZH%", texts[i]["zh"]);
|
|
}
|
|
|
|
// Assign texts.
|
|
for (var i in texts) {
|
|
var whoId = "who-" + i;
|
|
var enId = "en-" + i;
|
|
var zhId = "zh-" + i;
|
|
var trId = "tr-" + i;
|
|
var who = document.getElementById(whoId);
|
|
var en = document.getElementById(enId);
|
|
var zh = document.getElementById(zhId);
|
|
var tr = document.getElementById(trId);
|
|
who.textContent = i + '. ' + texts[i]["who"];
|
|
zh.textContent = texts[i]["zh"];
|
|
en.textContent = texts[i]["en"];
|
|
tr.textContent = texts[i]["tr"];
|
|
}
|
|
|
|
// Assign audios.
|
|
for (var i in b64Audios) {
|
|
var id = "audio-" + i;
|
|
var elem = document.getElementById(id);
|
|
elem.src = "data:audio/aac;base64," + b64Audios[i];
|
|
// Make item visible to work around default state of being hidden.
|
|
elem.style.display = "block";
|
|
}
|
|
|
|
// Assign images.
|
|
for (var i in b64Images) {
|
|
var id = "img-" + i;
|
|
var elem = document.getElementById(id);
|
|
elem.src = "data:image/jpeg;base64," + b64Images[i];
|
|
}
|
|
</script>
|
|
</html>
|