<!DOCTYPE html> <html lang="la"> <head> <meta charset="UTF-8"/> <title>{{pensum_title}}</title> <meta name="viewport" content="width=device-width, initial-scale=1"/> <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/LLPSI.css') }}"> <script type="text/javascript"> function adjust_size() { const pensum = document.querySelector('#pensum_content'); const inputs = pensum.querySelectorAll('input'); inputs.forEach((input) => { if (input.type=="text") { input.setAttribute("value", ""); input.setAttribute("style", "width: " + input.dataset.expected.length + "em"); } }); } function nomacron_to_macron(char) { var mapper = { 'A': 'Ā', 'a': 'ā', 'E': 'Ē', 'e': 'ē', 'I': 'Ī', 'i': 'ī', 'O': 'Ō', 'o': 'ō', 'U': 'Ū', 'u': 'ū'}; return mapper[char[0]]; } function macron_to_nomacron(char) { var mapper = { 'Ā': 'A', 'ā': 'a', 'Ē': 'E', 'ē': 'e', 'Ī': 'I', 'ī': 'i', 'Ō': 'O', 'ō': 'o', 'Ū': 'U', 'ū': 'u'}; return mapper[char]; } function to_nonmacron(input) { return input.replace(/Ā|ā|Ē|ē|Ī|ī/, macron_to_nomacron); } function to_macron(input) { return input.replace(/(\w)\1/, nomacron_to_macron); } function validate() { const pensum = document.querySelector('#pensum_content'); const inputs = pensum.querySelectorAll('input'); inputs.forEach((input) => { if (input.type == "text") { is_nonmacron_ok = false; is_macron_ok = false; if (document.getElementById('vowel_length').checked == false) { is_nonmacron_ok = (to_nonmacron(input.value) == to_nonmacron(input.dataset.expected)); } else { is_macron_ok = (input.value == input.dataset.expected); } if (is_nonmacron_ok || is_macron_ok) { input.setAttribute("class", "correct"); } else { input.setAttribute("class", "incorrect"); } } }); return false; } function show_answers() { const pensum = document.querySelector('#pensum_content'); const inputs = pensum.querySelectorAll('input'); inputs.forEach((input) => { if (input.type=="text") { input.value = input.dataset.expected; input.removeAttribute("class"); } }); } </script> </head> <body> <header> <h1><a href="/llpsi">Lingua Latīna Per Sē Illūstrāta</a></h1> <h2>{{pensum_title}}</h2> <label class="toggle"> Quantitās: <input type="checkbox" id="vowel_length"> </label> </header> <div id="pensum_content"> <p>{{pensum_content|safe}}</p> <br> <button title="Check answers" onclick="return validate();">Mitte</button><button title="Show correct answers" onclick="return show_answers();">Responsa</button> </div> <script type="text/javascript">adjust_size();</script> </body> </html>