Compare commits

..

2 Commits

Author SHA1 Message Date
sergiusz
8c115ab59a Added all cloze exercitia from capitulum primum 2021-01-08 02:04:29 +01:00
sergiusz
433873d5c9 Moves js to a separate file 2021-01-07 22:33:50 +01:00
21 changed files with 229 additions and 178 deletions

View File

@ -5,7 +5,7 @@ import os
capitula = [
{'title': '01 Imperium Romanum',
'pensa': ['A', 'B'],
'exercitia': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]},
'exercitia': [1, 2, 4, 5, 6, 8, 10, 11]},
{'title': '02 Familia Romana'},
{'title': '03 Puer Improbus'},
{'title': '04 Dominus et Servi'},

83
app/static/js/cloze.js Normal file
View File

@ -0,0 +1,83 @@
function adjust_size(divclass) {
const cloze = document.querySelector(divclass);
const inputs = cloze.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(divclass) {
const pensum = document.querySelector(divclass);
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(divclass) {
const cloze = document.querySelector(divclass);
const inputs = cloze.querySelectorAll('input');
inputs.forEach((input) => {
if (input.type=="text") {
input.value = input.dataset.expected;
input.removeAttribute("class");
}
});
}

View File

@ -0,0 +1,12 @@
-a|in -ā|-um|in -ō
Itali_a_ in Eurōpā est.
Rōma in Itali_ā_ est.
Itali_a_ et Graeci_a_ in Eurōp_ā_ sunt.
Rōma nōn in Graeci_ā_, sed in Itali_ā_ est.
Imperi_um_ Rōmān_um_ magnum est.
Gallia est prōvinci_a_ Rōmāna.
In prōvinci_ā_ Rōmān_a_ multae prōvinciae sunt.
<i>Ubi</i> est vocābul_um_ Latīnum.
In vocābul_ō_ <i>ubi</i> sunt trēs litterae.
Capitul_um_ prīmum: IMPERIVM ROMANVM.
In capitul_ō_ prīm_ō_ multa vocāluba sunt.

View File

@ -0,0 +1,14 @@
volabula: -a, in -ā, -um, in -ō
<br><ol>
<li><span>Itali<input type="text" data-expected="a"/></span> in Eurōpā est.</li>
<li>Rōma in <span>Itali<input type="text" data-expected="ā"/></span> est.</li>
<li><span>Itali<input type="text" data-expected="a"/></span> et <span>Graeci<input type="text" data-expected="a"/></span> in Eurō<span>p<input type="text" data-expected="ā"/></span> sunt.</li>
<li>Rōma nōn in <span>Graeci<input type="text" data-expected="ā"/>,</span> sed in <span>Itali<input type="text" data-expected="ā"/></span> est.</li>
<li><span>Imperi<input type="text" data-expected="um"/></span> Rōmā<span>n<input type="text" data-expected="um"/></span> magnum est.</li>
<li>Gallia est prō<span>vinci<input type="text" data-expected="a"/></span> Rōmāna.</li>
<li>In prō<span>vinci<input type="text" data-expected="ā"/></span> Rōmā<span>n<input type="text" data-expected="a"/></span> multae prōvinciae sunt.</li>
<li><i>Ubi</i> est vocā<span>bul<input type="text" data-expected="um"/></span> Latīnum.</li>
<li>In vocā<span>bul<input type="text" data-expected="ō"/></span> <i>ubi</i> sunt trēs litterae.</li>
<li><span>Capitul<input type="text" data-expected="um"/></span> prīmum: IMPERIVM ROMANVM.</li>
<li>In <span>capitul<input type="text" data-expected="ō"/></span> prī<span>m<input type="text" data-expected="ō"/></span> multa vocāluba sunt.</li>
</ol>

View File

@ -0,0 +1,16 @@
singulāris (sing.)|plūrālis (plūr.)
Fluvius singulāris est. Fluviī _plūrālis_ est.
Īnsulae plūrālis est. Īnsula _singulāris_ est.
Oppidum _singulāris_ est. Oppida _plūrālis_ est.
Singulāris: fluvius; plūrālis: fluviī.
Plūrālis: īnsulae; singulāris: _īnsula_.
Singulāris: oppidum; plūrālis: _oppida_.
Plūrālis: numerī; singulāris: _numerus_.
Singulāris: littera; plūrālis: _litterae_.
Plūrālis: vocābula; singulāris: _vocābulum_.
Singulāris: īnsula magna; plūrālis: _īnsulae_ _magnae_.
Plūrālis: oppida magna. singulāris: _oppidum_ _magnum_.
Singulāris: numerus Rōmānus; plūrālis: _numerī_ _Rōmānī_.
Plūrālis: litterae Graecae; singulāris _littera_ _Graeca_.
Singulāris: vocabulum Latīnum; plūrālis _vocābula_ _Latīna_.
Plūrālis: exempla; singulāris _exemplum_.

View File

@ -0,0 +1,18 @@
volabula: singulāris (sing.), plūrālis (plūr.)
<br><ol>
<li>Fluvius singulāris est. Fluviī <span><input type="text" data-expected="plūrālis"/></span> est.</li>
<li>Īnsulae plūrālis est. Īnsula <span><input type="text" data-expected="singulāris"/></span> est.</li>
<li>Oppidum <span><input type="text" data-expected="singulāris"/></span> est. Oppida <span><input type="text" data-expected="plūrālis"/></span> est.</li>
<li>Singulāris: fluvius; plūrālis: fluviī.</li>
<li>Plūrālis: īnsulae; singulāris: <span><input type="text" data-expected="īnsula"/>.</span></li>
<li>Singulāris: oppidum; plūrālis: <span><input type="text" data-expected="oppida"/>.</span></li>
<li>Plūrālis: numerī; singulāris: <span><input type="text" data-expected="numerus"/>.</span></li>
<li>Singulāris: littera; plūrālis: <span><input type="text" data-expected="litterae"/>.</span></li>
<li>Plūrālis: vocābula; singulāris: <span><input type="text" data-expected="vocābulum"/>.</span></li>
<li>Singulāris: īnsula magna; plūrālis: <span><input type="text" data-expected="īnsulae"/></span> <span><input type="text" data-expected="magnae"/>.</span></li>
<li>Plūrālis: oppida magna. singulāris: <span><input type="text" data-expected="oppidum"/></span> <span><input type="text" data-expected="magnum"/>.</span></li>
<li>Singulāris: numerus Rōmānus; plūrālis: <span><input type="text" data-expected="numerī"/></span> <span><input type="text" data-expected="Rōmānī"/>.</span></li>
<li>Plūrālis: litterae Graecae; singulāris <span><input type="text" data-expected="littera"/></span> <span><input type="text" data-expected="Graeca"/>.</span></li>
<li>Singulāris: vocabulum Latīnum; plūrālis <span><input type="text" data-expected="vocābula"/></span> <span><input type="text" data-expected="Latīna"/>.</span></li>
<li>Plūrālis: exempla; singulāris <span><input type="text" data-expected="exemplum"/>.</span></li>
</ol>

View File

@ -1,2 +0,0 @@
Under
Construction

View File

@ -1,2 +1,13 @@
-us|-ī|-a|-ae|-um|-a
Corsica īnsul_a_ est. Corsica et Sardinia īnsul_ae_ sunt.
Corsica īnsul_a_ est. Corsica et Sardinia īnsul_ae_ sunt.
Rhēnus fluvi_us_ est. Rhēnus et Dānivius fluvi_ī_ sunt.
Brundisium oppid_um_ est. Brundisium et Tūsculum oppid_a_ sunt.
Sicilia īnsula magn_a_ est.
Nīlus est fluvius magn_us_.
Brundisium oppidum magn_um_ est.
Tūsculum nōn oppid_um_ magn_um_, sed oppid_um_ parv_um_ est.
Malita nōn est īnsul_a_ magn_a_, sed īnsul_a_ parv_a_.
Tiberis nōn fluvi_us_ magn_us_, sed fluvi_us_ parv_us_ est.
Rhēnus et Nīlus fluviī magn_ī_ sunt.
Sicilia et Sardinia īnsulae magn_ae_ sunt.
Brundisium et Sparta oppida magn_a_ sunt.

View File

@ -1,4 +1,15 @@
volabula: -us, -ī, -a, -ae, -um, -a
<br><ol>
<li>Corsica ī<span>nsul<input type="text" data-expected="a"/></span> est. Corsica et Sardinia ī<span>nsul<input type="text" data-expected="ae"/></span> sunt.</li>
<li>Rhēnus <span>fluvi<input type="text" data-expected="us"/></span> est. Rhēnus et Dānivius <span>fluvi<input type="text" data-expected="ī"/></span> sunt.</li>
<li>Brundisium <span>oppid<input type="text" data-expected="um"/></span> est. Brundisium et Tūsculum <span>oppid<input type="text" data-expected="a"/></span> sunt.</li>
<li>Sicilia īnsula <span>magn<input type="text" data-expected="a"/></span> est.</li>
<li>Nīlus est fluvius <span>magn<input type="text" data-expected="us"/>.</span></li>
<li>Brundisium oppidum <span>magn<input type="text" data-expected="um"/></span> est.</li>
<li>Tūsculum nōn <span>oppid<input type="text" data-expected="um"/></span> <span>magn<input type="text" data-expected="um"/>,</span> sed <span>oppid<input type="text" data-expected="um"/></span> <span>parv<input type="text" data-expected="um"/></span> est.</li>
<li>Malita nōn est ī<span>nsul<input type="text" data-expected="a"/></span> <span>magn<input type="text" data-expected="a"/>,</span> sed ī<span>nsul<input type="text" data-expected="a"/></span> <span>parv<input type="text" data-expected="a"/>.</span></li>
<li>Tiberis nōn <span>fluvi<input type="text" data-expected="us"/></span> <span>magn<input type="text" data-expected="us"/>,</span> sed <span>fluvi<input type="text" data-expected="us"/></span> <span>parv<input type="text" data-expected="us"/></span> est.</li>
<li>Rhēnus et Nīlus fluviī <span>magn<input type="text" data-expected="ī"/></span> sunt.</li>
<li>Sicilia et Sardinia īnsulae <span>magn<input type="text" data-expected="ae"/></span> sunt.</li>
<li>Brundisium et Sparta oppida <span>magn<input type="text" data-expected="a"/></span> sunt.</li>
</ol>

View File

@ -0,0 +1,7 @@
fluvius est|fluviī sunt|īnsula est|īnsulae sunt|oppidum est|oppida sunt
Sicilia īnsula est. Sicilia et Sardinia _īnsulae_ sunt.
Rhēnus fluvius est. Rhēnus et Dānuvius _fluviī_ _sunt_.
Tūsculum oppidum est. Tūsculum et Brundisium _oppida_ _sunt_.
Corsica et Sardinia īnsulae sunt. Sicilia quoque _īnsula_ _est_.
Nīlus et Tiberis fluviī sunt. Dānuvius quoque _fluvius_ _est_.
Sparta et Delphī oppida sunt. Brundisium quoque _oppidum_ _est_.

View File

@ -0,0 +1,9 @@
volabula: fluvius est, fluviī sunt, īnsula est, īnsulae sunt, oppidum est, oppida sunt
<br><ol>
<li>Sicilia īnsula est. Sicilia et Sardinia <span><input type="text" data-expected="īnsulae"/></span> sunt.</li>
<li>Rhēnus fluvius est. Rhēnus et Dānuvius <span><input type="text" data-expected="fluviī"/></span> <span><input type="text" data-expected="sunt"/>.</span></li>
<li>Tūsculum oppidum est. Tūsculum et Brundisium <span><input type="text" data-expected="oppida"/></span> <span><input type="text" data-expected="sunt"/>.</span></li>
<li>Corsica et Sardinia īnsulae sunt. Sicilia quoque <span><input type="text" data-expected="īnsula"/></span> <span><input type="text" data-expected="est"/>.</span></li>
<li>Nīlus et Tiberis fluviī sunt. Dānuvius quoque <span><input type="text" data-expected="fluvius"/></span> <span><input type="text" data-expected="est"/>.</span></li>
<li>Sparta et Delphī oppida sunt. Brundisium quoque <span><input type="text" data-expected="oppidum"/></span> <span><input type="text" data-expected="est"/>.</span></li>
</ol>

View File

@ -0,0 +1,9 @@
Graecus|imperium|multī|num|paucī|prōvincia|quid|Rōmānus
Tūsculum nōn oppidum Graecum, sed oppidum _Rōmānum_ est.
Sparta est oppidum _Graecum_.
_Num_ Nīlus oppidum est? Nīlus nōn est oppidum.
_Quid_ est Nīlus? Nīlus fluvius est.
In Arabiā nōn multī, sed _paucī_ fluviī sunt.
Quid est Gallia? Gallia est _prōvincia_ Rōmāna.
In imperiō Rōmānō nōn paucae, sed _multae_ prōvinciae sunt.
Magnum est _imperium_ Rōmānum.

View File

@ -0,0 +1,11 @@
volabula: Graecus, imperium, multī, num, paucī, prōvincia, quid, Rōmānus
<br><ol>
<li>Tūsculum nōn oppidum Graecum, sed oppidum <span><input type="text" data-expected="Rōmānum"/></span> est.</li>
<li>Sparta est oppidum <span><input type="text" data-expected="Graecum"/>.</span></li>
<li><span><input type="text" data-expected="Num"/></span> Nīlus oppidum est? Nīlus nōn est oppidum.</li>
<li><span><input type="text" data-expected="Quid"/></span> est Nīlus? Nīlus fluvius est.</li>
<li>In Arabiā nōn multī, sed <span><input type="text" data-expected="paucī"/></span> fluviī sunt.</li>
<li>Quid est Gallia? Gallia est <span><input type="text" data-expected="prōvincia"/></span> Rōmāna.</li>
<li>In imperiō Rōmānō nōn paucae, sed <span><input type="text" data-expected="multae"/></span> prōvinciae sunt.</li>
<li>Magnum est <span><input type="text" data-expected="imperium"/></span> Rōmānum.</li>
</ol>

View File

@ -0,0 +1,9 @@
Latīnus|Graecus|littera|mīlle|numerus|prīmus|secundus|sex|syllaba|tertius|trēs|vocābulum-a|in -ā|-um|in -ō
III _numerus_ Rōmānus est. I et II _numerī_ _Rōmānī_ sunt.
<i>Nōn</i> _vocābulum_ Lātinum est. <i>Nōn</i> et <i>sed</i> _vocābula_ _Lātina_ sunt.
Γ _littera_ Graeca est. Γ et Δ _litterae_ _Graecae_ sunt.
A et B litterae _Latīnae_ sunt. C quoque _littera_ _Latīna_ est.
<i>In</i> et <i>num</i> _vocābula_ Latīna sunt. <i>Et</i> quoque _vocābulum_ _Latīnum_ est.
I et II _numerī_ sunt. III quoque _numerus_ est.
In vocābulo <i>Latīna</i> sunt _sex_ [VI] litterae et _trēs_ [III] _syllabae_: syllaba _prīma_ <i>La-</i>, _secunda_ <i>-tī-</i>, _tertia_ <i>-na</i>.
In _capitulō_ prīmō _mīlle_ [M] vocābula sunt.

View File

@ -0,0 +1,11 @@
volabula: Latīnus, Graecus, littera, mīlle, numerus, prīmus, secundus, sex, syllaba, tertius, trēs, vocābulum-a, in -ā, -um, in -ō
<br><ol>
<li>III <span><input type="text" data-expected="numerus"/></span> Rōmānus est. I et II <span><input type="text" data-expected="numerī"/></span> <span><input type="text" data-expected="Rōmānī"/></span> sunt.</li>
<li><i>Nōn</i> <span><input type="text" data-expected="vocābulum"/></span> Lātinum est. <i>Nōn</i> et <i>sed</i> <span><input type="text" data-expected="vocābula"/></span> <span><input type="text" data-expected="Lātina"/></span> sunt.</li>
<li>Γ <span><input type="text" data-expected="littera"/></span> Graeca est. Γ et Δ <span><input type="text" data-expected="litterae"/></span> <span><input type="text" data-expected="Graecae"/></span> sunt.</li>
<li>A et B litterae <span><input type="text" data-expected="Latīnae"/></span> sunt. C quoque <span><input type="text" data-expected="littera"/></span> <span><input type="text" data-expected="Latīna"/></span> est.</li>
<li><i>In</i> et <i>num</i> <span><input type="text" data-expected="vocābula"/></span> Latīna sunt. <i>Et</i> quoque <span><input type="text" data-expected="vocābulum"/></span> <span><input type="text" data-expected="Latīnum"/></span> est.</li>
<li>I et II <span><input type="text" data-expected="numerī"/></span> sunt. III quoque <span><input type="text" data-expected="numerus"/></span> est.</li>
<li>In vocābulo <i>Latīna</i> sunt <span><input type="text" data-expected="sex"/></span> [VI] litterae et <span><input type="text" data-expected="trēs"/></span> [III] <span><input type="text" data-expected="syllabae"/></span>: syllaba <span><input type="text" data-expected="prīma"/></span> <i>La-</i>, <span><input type="text" data-expected="secunda"/></span> <i>-tī-</i>, <span><input type="text" data-expected="tertia"/></span> <i>-na</i>.</li>
<li>In <span><input type="text" data-expected="capitulō"/></span> prīmō <span><input type="text" data-expected="mīlle"/></span> [M] vocābula sunt.</li>
</ol>

View File

@ -5,91 +5,7 @@
<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 exercitium = document.querySelector('.exercitium_content');
const inputs = exercitium.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 exercitium = document.querySelector('.exercitium_content');
const inputs = exercitium.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('.exercitium_content');
const inputs = pensum.querySelectorAll('input');
inputs.forEach((input) => {
if (input.type=="text") {
input.value = input.dataset.expected;
input.removeAttribute("class");
}
});
}
</script>
<script src="{{ url_for('static', filename='js/cloze.js') }}"></script>
</head>
<body>
<header>
@ -102,8 +18,8 @@
<div class="exercitium_content">
<p>{{exercitium_content|safe}}</p>
<br>
<button title="Check answers" onclick="return validate();">Mitte</button><button title="Show correct answers" onclick="return show_answers();">Responsa</button>
<button title="Check answers" onclick="return validate('.exercitium_content');">Mitte</button><button title="Show correct answers" onclick="return show_answers('.exercitium_content');">Responsa</button>
</div>
<script type="text/javascript">adjust_size();</script>
<script type="text/javascript">adjust_size('.exercitium_content');</script>
</body>
</html>

View File

@ -5,91 +5,7 @@
<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>
<script src="{{ url_for('static', filename='js/cloze.js') }}"></script>
</head>
<body>
<header>
@ -102,8 +18,8 @@
<div class="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>
<button title="Check answers" onclick="return validate('.pensum_content');">Mitte</button><button title="Show correct answers" onclick="return show_answers('.pensum_content');">Responsa</button>
</div>
<script type="text/javascript">adjust_size();</script>
<script type="text/javascript">adjust_size('.pensum_content');</script>
</body>
</html>