songbook generator

This commit is contained in:
Carlos Galindo 2021-10-01 18:26:40 +02:00
parent c084ca2d89
commit 6535d4d7dd
5 changed files with 158 additions and 4 deletions

View file

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Editor</title>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<style>
ul {
list-style: none;
}
ul li:before {
content: '- \0000a0';
font-weight: bold;
}
</style>
<script>
var inputs = []
function changed() {
var lastNum = document.getElementById("lastNum")
if (lastNum.value) {
inputs.push(lastNum)
lastNum.name = "song[]"
lastNum.onchange =
lastNum.removeAttribute("onchange")
lastNum.removeAttribute("onkeyup")
lastNum.removeAttribute("id")
var newNum = document.createElement("INPUT")
newNum.type = "number"
newNum.id = "lastNum"
newNum.max = 500
newNum.min = 1
newNum.onchange = newNum.onkeyup = () => changed()
var li = document.createElement("LI")
li.appendChild(newNum)
document.getElementById("list").appendChild(li)
}
}
</script>
</head>
<body>
<header>
<h1>Editor</h1>
</header>
<main>
<form action="generar.php" method="post">
<ul id="list">
<li><input id="lastNum" type="number" max="500" min="1" onkeyup="changed()" onchange="changed()"></li>
</ul>
<button type="submit">Enviar</button>
</form>
</main>
</body>
</html>

View file

@ -0,0 +1,21 @@
<?php
$song_list = "";
foreach ($_POST["song"] as $i)
if ($i) $song_list .= "$i ";
$cmd = "python3 ../../cancionero-web-python/src/latex_scanner.py";
$cmd .= " --latex ../../cancionero-web-python/latex/cancionero.tex";
$cmd .= " --other-latex ../../cancionero-web-python/latex/canciones/";
$cmd .= " --other-index 400";
$cmd .= " --output-dir .";
$cmd .= " --output-file index.html";
$cmd .= " --songs $song_list";
exec($cmd, $output, $return_code);
foreach ($output as $line) echo "$line\n";
if ($return_code)
echo "The return code was $return_code\n";
?>

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<head>
{% include "head.html" with path="." only %}
<link rel="stylesheet" type="text/css" href="song.css"/>
<link rel="stylesheet" type="text/css" href="index.css"/>
<script async src="song.js"></script>
</head>
<body>
{% include "header.html" with path="." %}
<main>
<h2>Índice</h2>
<ol class="songs">
{% for song in songs %}
<a href="#{{ song.number }}"><li>
<span class="number">{{ song.number }}.</span>
{{ song.name }}
</li></a>
{% endfor %}
</ol>
{% for song in songs %}
<div class="song" id="wholeSongDiv">
<h2 id="{{ song.number }}">{{ song.number }}. {{ song.name }}</h2>
<div id="songLyrics">
{% for verse in song.verses %}
<div class="{{ verse.kind }}">
{% for line in verse.lines %}
{{ line }}<br/>
{% endfor %}
</div>
{% endfor %}
</div>
</div>
{% endfor %}
</main>
{% include "footer.html" %}
</body>
</html>