Añadir navegación por subtítulos a la web
This commit is contained in:
parent
877d1a01e4
commit
bc306a3160
|
@ -1,3 +1,8 @@
|
||||||
|
:root {
|
||||||
|
--font-color: #aaa;
|
||||||
|
--background-color: #232323;
|
||||||
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "CyrBit";
|
font-family: "CyrBit";
|
||||||
src: url("CyrBit.ttf");
|
src: url("CyrBit.ttf");
|
||||||
|
@ -6,14 +11,14 @@
|
||||||
body {
|
body {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
background-color: #232323;
|
background-color: var(--background-color);
|
||||||
color: #aaa;
|
color: var(--font-color);
|
||||||
font-family: "CyrBit";
|
font-family: "CyrBit";
|
||||||
font-size: 20pt;
|
font-size: 20pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: #aaa;
|
color: var(--font-color);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +65,7 @@ table td, table th {
|
||||||
}
|
}
|
||||||
|
|
||||||
#libreto, #playlist, #onion, #ipfs, #todo {
|
#libreto, #playlist, #onion, #ipfs, #todo {
|
||||||
border: 1px solid #aaa;
|
border: 1px solid var(--font-color);
|
||||||
border-radius: 0.5em;
|
border-radius: 0.5em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
@ -103,6 +108,13 @@ video {
|
||||||
line-height: 1.2em;
|
line-height: 1.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.lyrics button {
|
||||||
|
border: 1px solid;
|
||||||
|
background: transparent;
|
||||||
|
color: var(--font-color);
|
||||||
|
border-radius: 0.6em;
|
||||||
|
}
|
||||||
|
|
||||||
#song-playlist #video-playlist {
|
#song-playlist #video-playlist {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,23 @@
|
||||||
</video>
|
</video>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if parsed_srt %}
|
||||||
|
<p class="lyrics">
|
||||||
|
{% for line in parsed_srt %}
|
||||||
|
<button type="button" class="srtline" data-seconds="{{ line.start.total_seconds() }}">⊳</button>
|
||||||
|
{{ line.content }}<br/>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if song.files %}
|
||||||
|
<ul class="files">
|
||||||
|
{% for entry in song.files %}
|
||||||
|
<li><a href="{{ entry|url }}">{{ entry.name }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
let player = videojs('song-{{ song.path.name }}-video');
|
let player = videojs('song-{{ song.path.name }}-video');
|
||||||
{% if song.karaoke_ass or song.ass %}
|
{% if song.karaoke_ass or song.ass %}
|
||||||
|
@ -45,22 +62,12 @@
|
||||||
SubtitlesOctopusOnLoad();
|
SubtitlesOctopusOnLoad();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
const subtitleButtons = document.querySelectorAll('.lyrics button');
|
||||||
|
for (let btn of subtitleButtons) {
|
||||||
|
btn.addEventListener('click', function() {
|
||||||
|
player.currentTime(this.dataset.seconds);
|
||||||
|
});
|
||||||
|
}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% if parsed_srt %}
|
|
||||||
<p class="lyrics">
|
|
||||||
{% for line in parsed_srt %}
|
|
||||||
{{ line.content }}<br/>
|
|
||||||
{% endfor %}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if song.files %}
|
|
||||||
<ul class="files">
|
|
||||||
{% for entry in song.files %}
|
|
||||||
<li><a href="{{ entry|url }}">{{ entry.name }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue