hmml_to_html.c: Mock-up reference.html

Also adapt onRefChanged() to support multiple sourceMenus
This commit is contained in:
Matt Mascarenhas 2017-03-21 02:38:18 +00:00
parent 678dc869c5
commit af9f5a593b
3 changed files with 217 additions and 17 deletions

View File

@ -116,12 +116,8 @@ CopyStringToBuffer(char *Src, buffer *Dest)
int
StringsDiffer(char *A, char *B)
{
while(*A && *B)
while(*A && *B && *A == *B)
{
if(*A != *B)
{
return *A - *B;
}
++A, ++B;
}
return *A - *B;

191
hmml_to_html/reference.html Normal file
View File

@ -0,0 +1,191 @@
<html>
<head>
<meta charset="UTF-8">
<!-- Load the player -->
<script type="text/javascript" src="player.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="title">
<span class="episode_name">Coloured Nicks</span>
<div class="refs_container">
<span>Quotes &#9660;</span>
<div class="mouse_catcher"></div>
<div class="refs">
<span data-id="a" class="ref">
<span class="ref_content">
<div class="source">#1 • 2016-11-16</div>
<div class="ref_title">Stay RISCY, everyone</div>
</span>
<div class="ref_indices">
<span data-timestamp="176" class="timecode"><span class="ref_index">[a]</span><span class="time">2:56</span></span>
</div>
</span>
<span data-id="b" class="ref">
<span class="ref_content">
<div class="source">#2 • 2016-12-02</div>
<div class="ref_title">I dream of nice things</div>
</span>
<div class="ref_indices">
<span data-timestamp="312" class="timecode"><span class="ref_index">[b]</span><span class="time">5:12</span></span>
</div>
</span>
</div>
</div>
<div class="refs_container">
<span>References &#9660;</span>
<div class="mouse_catcher"></div>
<div class="refs">
<a data-id="0" href="https://milton.handmade.network/forums/t/1550-idea_:_ability_to_move_panels_outside_of_the_milton_window" target="_blank" class="ref">
<span class="ref_content">
<div class="source">Milton Forums</div>
<div class="ref_title">Idea : ability to move panels outside of the milton window?</div>
</span>
<div class="ref_indices">
<span data-timestamp="60" class="timecode"><span class="ref_index">[1]</span><span class="time">1:00</span></span>
</div>
</a>
<a data-id="1" href="https://milton.handmade.network/forums" target="_blank" class="ref">
<span class="ref_content">
<div class="source"></div>
<div class="ref_title">Milton Forums</div>
</span>
<div class="ref_indices">
<span data-timestamp="60" class="timecode"><span class="ref_index">[2]</span><span class="time">1:00</span></span>
<span data-timestamp="624" class="timecode"><span class="ref_index">[3]</span><span class="time">10:24</span></span>
</div>
</a>
</div>
</div>
<span class="annotator_container">Annotator: <span class="annotator">Miblo</span></span>
</div>
<div class="player_container">
<div class="video_container" data-videoId="ug5WkCROkOk"></div>
<div class="markers_container">
<div class="marker authored" data-timestamp="60" data-ref="0,1">
<div class="content"><span class="timecode">1:00</span><span class="author" style="color: #69D036;">insofaras</span> Some text referring to <a href="https://handmade.network/m/Zilarrezko" target="blank" style="color: #8624DC; text-decoration: none">Zilarrezko</a> about this thing<sup>1</sup> regarding triangle intersections he saw in the <a href="https://milton.handmade.network/" target="blank" style="color: #8369CF; text-decoration: none">milton</a> forums<sup>2</sup><span class="categories"><div class="category rendering"></div><div class="category research"></div></span></div>
<div class="progress faded">
<div class="content"><span class="timecode">1:00</span><span class="author" style="color: #69D036;">insofaras</span> Some text referring to <a href="https://handmade.network/m/Zilarrezko" target="blank" style="color: #8624DC; text-decoration: none">Zilarrezko</a> about this thing<sup>1</sup> regarding triangle intersections he saw in the <a href="https://milton.handmade.network/" target="blank" style="color: #8369CF; text-decoration: none">milton</a> forums<sup>2</sup><span class="categories"><div class="category rendering"></div><div class="category research"></div></span></div>
</div>
<div class="progress main">
<div class="content"><span class="timecode">1:00</span><span class="author" style="color: #69D036;">insofaras</span> Some text referring to <a href="https://handmade.network/m/Zilarrezko" target="blank" style="color: #8624DC; text-decoration: none">Zilarrezko</a> about this thing<sup>1</sup> regarding triangle intersections he saw in the <a href="https://milton.handmade.network/" target="blank" style="color: #8369CF; text-decoration: none">milton</a> forums<sup>2</sup><span class="categories"><div class="category rendering"></div><div class="category research"></div></span></div>
</div>
</div>
<div class="marker" data-timestamp="176" data-ref="a">
<div class="content"><span class="timecode">2:56</span>"Stay RISCY, everyone"<sup>a</sup></div>
<div class="progress faded">
<div class="content"><span class="timecode">2:56</span>"Stay RISCY, everyone"<sup>a</sup></div>
</div>
<div class="progress main">
<div class="content"><span class="timecode">2:56</span>"Stay RISCY, everyone"<sup>a</sup></div>
</div>
</div>
<div class="marker blackboard" data-timestamp="312" data-ref="b">
<div class="content"><span class="timecode">5:12</span>Matrix multiplication<sup>b</sup><span class="categories"><div class="category mathematics"></div></span></div>
<div class="progress faded">
<div class="content"><span class="timecode">5:12</span>Matrix multiplication<sup>b</sup><span class="categories"><div class="category mathematics"></div></span></div>
</div>
<div class="progress main">
<div class="content"><span class="timecode">5:12</span>Matrix multiplication<sup>b</sup><span class="categories"><div class="category mathematics"></div></span></div>
</div>
</div>
<div class="marker" data-timestamp="624" data-ref="1">
<div class="content"><span class="timecode">10:24</span>More stuff referring to the <a href="https://milton.handmade.network/" target="blank" style="color: #8369CF; text-decoration: none">milton</a> forum post<sup>3</sup></div>
<div class="progress faded">
<div class="content"><span class="timecode">10:24</span>More stuff referring to the <a href="https://milton.handmade.network/" target="blank" style="color: #8369CF; text-decoration: none">milton</a> forum post<sup>3</sup></div>
</div>
<div class="progress main">
<div class="content"><span class="timecode">10:24</span>More stuff referring to the <a href="https://milton.handmade.network/" target="blank" style="color: #8369CF; text-decoration: none">milton</a> forum post<sup>3</sup></div>
</div>
</div>
<div class="marker" data-timestamp="642">
<div class="content"><span class="timecode">10:42</span>Some text. Simples!</div>
<div class="progress faded">
<div class="content"><span class="timecode">10:24</span>Some text. Simples!</div>
</div>
<div class="progress main">
<div class="content"><span class="timecode">10:24</span>Some text. Simples!</div>
</div>
</div>
</div>
</div>
<script>
var player = new Player(document.querySelector(".player_container"), onRefChanged);
window.addEventListener("resize", function() { player.updateSize(); });
document.addEventListener("keypress", function(ev) {
switch (ev.key) {
case 'n':
case 'd':
case 's': {
player.jumpToNextMarker();
} break;
case 'p':
case 'a':
case 'w': {
player.jumpToPrevMarker();
} break;
}
});
var refTimecodes = document.querySelectorAll(".refs .ref .timecode");
for (var i = 0; i < refTimecodes.length; ++i) {
refTimecodes[i].addEventListener("click", function(ev) {
if (player) {
var time = ev.currentTarget.getAttribute("data-timestamp");
player.setTime(parseInt(time, 10));
player.play();
ev.preventDefault();
ev.stopPropagation();
return false;
}
});
}
var refSources = document.querySelectorAll(".refs .ref");
for (var i = 0; i < refSources.length; ++i) {
refSources[i].addEventListener("click", function(ev) {
if (player) {
player.pause();
}
});
}
function onRefChanged(ref) {
var sourceMenus = document.querySelectorAll(".refs_container");
for (var MenuIndex = 0; MenuIndex < sourceMenus.length; ++MenuIndex)
{
var SetMenu = 0;
if (ref !== undefined && ref !== null) {
var refElements = sourceMenus[MenuIndex].querySelectorAll(".refs .ref");
var refs = ref.split(",");
for (var i = 0; i < refElements.length; ++i) {
if (refs.includes(refElements[i].getAttribute("data-id"))) {
refElements[i].classList.add("current");
SetMenu = 1;
} else {
refElements[i].classList.remove("current");
}
}
if(SetMenu) {
sourceMenus[MenuIndex].classList.add("current");
} else {
sourceMenus[MenuIndex].classList.remove("current");
}
} else {
console.log("%s should deselect, outer loop!", MenuIndex);
sourceMenus[MenuIndex].classList.remove("current");
var refs = sourceMenus[MenuIndex].querySelectorAll(".refs .ref");
for (var i = 0; i < refs.length; ++i) {
refs[i].classList.remove("current");
}
}
}
}
</script>
</body>
</html>

View File

@ -85,24 +85,41 @@
}
.marker .content .categories {
display: inline-block;
display: inline-flex;
margin: 4px;
}
.marker .content .categories .category {
border: 1px;
border: 1px solid;
border-radius: 50%;
height: 6px;
width: 6px;
height: 8px;
margin-left: 2px;
width: 8px;
}
.category.memory {
.marker .content .categories .category.hardware {
border-color: #FF3333;
background: #FF3333;
}
.marker .content .categories .category.mathematics {
border-color: #5E0595;
background: #5E0595;
}
.marker .content .categories .category.memory {
border-color: #3399FF;
background: #3399FF;
}
.category.hardware {
border-color: #FF3333;
background: #FF3333;
.marker .content .categories .category.rendering {
border-color: #60B60A;
background: #60B60A;
}
.marker .content .categories .category.research {
border-color: #5851EB;
background: #5851EB;
}
/* MANDATORY */
@ -201,10 +218,6 @@ body {
right: 0;
}
.title .refs_container:hover .mouse_catcher {
width: 300px;
}
.title .refs_container .refs {
position: absolute;
top: 100%;