chore: эмодзи → HTML entity во всех учебниках 10-11 классов

This commit is contained in:
Maxim Dolgolyov
2026-05-29 21:46:13 +03:00
parent b3ea35049f
commit 095265f482
14 changed files with 70 additions and 70 deletions
+11 -11
View File
@@ -218,7 +218,7 @@ a{color:inherit;text-decoration:none}
<section id="sec-p15" class="sec" data-watermark="↔"><div class="sec-header"><span class="sec-num">§ 15</span><h2 class="sec-h">Применение свойств для преобразований</h2></div><div id="p15-body"></div></section>
<section id="sec-p16" class="sec" data-watermark="∿"><div class="sec-header"><span class="sec-num">§ 16</span><h2 class="sec-h">Функция y = ⁿ√x. Свойства и график</h2></div><div id="p16-body"></div></section>
<section id="sec-p17" class="sec" data-watermark="="><div class="sec-header"><span class="sec-num">§ 17</span><h2 class="sec-h">Иррациональные уравнения</h2></div><div id="p17-body"></div></section>
<section id="sec-final2" class="sec" data-watermark=""><div class="sec-header"><span class="sec-num" style="background:linear-gradient(135deg,#7c3aed,#c4b5fd)">Финал главы</span><h2 class="sec-h">Итоги. 4 босса главы 2</h2></div><div id="final2-body"></div></section>
<section id="sec-final2" class="sec" data-watermark="&#9733;"><div class="sec-header"><span class="sec-num" style="background:linear-gradient(135deg,#7c3aed,#c4b5fd)">Финал главы</span><h2 class="sec-h">Итоги. 4 босса главы 2</h2></div><div id="final2-body"></div></section>
</div>
<aside class="col-side" id="col-side"><div id="sidebar-content"></div></aside>
@@ -326,7 +326,7 @@ const PARAS = [
{ id:'p15', num:'§ 15', name:'Преобразования', sub:'вынесение, рационализация' },
{ id:'p16', num:'§ 16', name:'y = ⁿ√x', sub:'свойства и графики' },
{ id:'p17', num:'§ 17', name:'Иррац. уравнения', sub:'возведение в степень' },
{ id:'final2', num:'', name:'Финал главы', sub:'4 босса', final:true },
{ id:'final2', num:'&#9733;', name:'Финал главы', sub:'4 босса', final:true },
];
function buildParaSelector(){
@@ -431,7 +431,7 @@ function buildSidebar(id){
html+='<div class="sidecard" style="background:linear-gradient(135deg,var(--warn-bg,#fef3c7),var(--pri-soft));border-color:var(--warn,#f59e0b)"><h4 style="color:#92400e">Подсказка</h4><div class="sidecard-row" style="font-size:.84rem;line-height:1.55">'+tip.html+'</div></div>';
if(STATE.achievements.size>0){
html+='<div class="sidecard"><h4>Достижения</h4>';
[...STATE.achievements.values()].slice(-4).forEach(text=>{ html+='<div class="sidecard-row" style="font-size:.78rem;color:var(--ok)"> '+text+'</div>'; });
[...STATE.achievements.values()].slice(-4).forEach(text=>{ html+='<div class="sidecard-row" style="font-size:.78rem;color:var(--ok)">&#10003; '+text+'</div>'; });
html+='</div>';
}
box.innerHTML=html;
@@ -547,7 +547,7 @@ function makeBoss(paraId, bossDef){
const q=document.getElementById(idP+'-q');
const fb=document.getElementById(idP+'-fb');
if(st.defeated){
stageEl.textContent=' Побеждён'; fill.style.width='100%';
stageEl.textContent='&#10003; Побеждён'; fill.style.width='100%';
q.innerHTML='<b style="color:'+bossDef.color+'">Босс повержен!</b>';
document.getElementById(idP+'-go').disabled=true;
document.getElementById(idP+'-go').style.opacity=.5;
@@ -1223,7 +1223,7 @@ function buildP17(){
<ol style="padding-left:22px;line-height:1.9">
<li>Возводим в квадрат: $x + 3 = 25$.</li>
<li>$x = 22$.</li>
<li>Проверка: $\\sqrt{22 + 3} = \\sqrt{25} = 5$ .</li>
<li>Проверка: $\\sqrt{22 + 3} = \\sqrt{25} = 5$ &#10003;.</li>
</ol>
<p><b>Уравнение с подвохом.</b> $\\sqrt{x - 1} = x - 7$.</p>
<p>Возводим в квадрат: $x - 1 = (x - 7)^2 = x^2 - 14x + 49$.</p>
@@ -1231,7 +1231,7 @@ function buildP17(){
<p><b>Проверка:</b></p>
<ul style="padding-left:22px;line-height:1.85">
<li>$x = 5$: $\\sqrt{4} = 5 - 7 = -2$. Но $\\sqrt{4} = 2 \\ne -2$. <b>Посторонний!</b></li>
<li>$x = 10$: $\\sqrt{9} = 10 - 7 = 3$. </li>
<li>$x = 10$: $\\sqrt{9} = 10 - 7 = 3$. &#10003;</li>
</ul>
<p>Ответ: $x = 10$.</p>`);
@@ -1369,15 +1369,15 @@ function buildFinal2(){
/* === Hero card === */
html += '<div style="background:linear-gradient(135deg,#7c3aed,#c4b5fd);color:#fff;border-radius:18px;padding:24px 22px;margin-bottom:24px;box-shadow:0 8px 28px rgba(124,58,237,.25);position:relative;overflow:hidden">'
+'<div style="position:absolute;right:-20px;top:-30px;font-size:8rem;font-weight:900;color:rgba(255,255,255,.1);font-family:Unbounded,sans-serif;line-height:1;pointer-events:none"></div>'
+'<div style="position:absolute;right:-20px;top:-30px;font-size:8rem;font-weight:900;color:rgba(255,255,255,.1);font-family:Unbounded,sans-serif;line-height:1;pointer-events:none">&#9733;</div>'
+'<div style="position:relative;z-index:1">'
+'<div style="font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85;margin-bottom:6px">ФИНАЛ ГЛАВЫ 2</div>'
+'<h2 style="font-family:Unbounded,sans-serif;font-size:1.55rem;font-weight:800;margin-bottom:8px">4 интегрированных босса</h2>'
+'<p style="font-size:.95rem;opacity:.92;margin-bottom:14px;max-width:580px">Каждый босс проверяет синтез знаний главы. Победи всех — получи ачивку <b>«Магистр корней»</b> и +100 XP.</p>'
+'<div style="display:flex;gap:12px;flex-wrap:wrap;align-items:center">'
+'<div style="padding:8px 14px;background:rgba(255,255,255,.18);border-radius:99px;font-size:.82rem;font-weight:700"> 4 босса</div>'
+'<div style="padding:8px 14px;background:rgba(255,255,255,.18);border-radius:99px;font-size:.82rem;font-weight:700">&#9733; 4 босса</div>'
+'<div style="padding:8px 14px;background:rgba(255,255,255,.18);border-radius:99px;font-size:.82rem;font-weight:700">+ до 200 XP</div>'
+'<div style="padding:8px 14px;background:rgba(255,255,255,.18);border-radius:99px;font-size:.82rem;font-weight:700"> Финальная ачивка</div>'
+'<div style="padding:8px 14px;background:rgba(255,255,255,.18);border-radius:99px;font-size:.82rem;font-weight:700">&#9733; Финальная ачивка</div>'
+'</div></div></div>';
/* === Overall progress === */
@@ -1394,7 +1394,7 @@ function buildFinal2(){
/* === Celebration === */
html += '<div id="final2-cel" style="display:none;margin:24px 0;padding:24px 22px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:18px;text-align:center;box-shadow:0 6px 22px rgba(245,158,11,.25)">'
+'<div style="font-size:3rem;margin-bottom:6px"></div>'
+'<div style="font-size:3rem;margin-bottom:6px">&#9733;</div>'
+'<div style="font-family:Unbounded,sans-serif;font-size:1.4rem;font-weight:900;color:#92400e;margin-bottom:6px">МАГИСТР КОРНЕЙ!</div>'
+'<div style="font-size:.95rem;color:#78350f;margin-bottom:14px">Ты победил всех 4 боссов главы 2 и освоил корни n-й степени.<br>Получено: <b>+100 XP</b> и финальная ачивка.</div>'
+'<a href="/textbook/algebra-10" style="display:inline-flex;align-items:center;gap:8px;padding:11px 22px;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border-radius:11px;font-weight:700;text-decoration:none">Вернуться к Алгебре 10 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px"><polyline points="9 18 15 12 9 6"/></svg></a>'
@@ -1455,7 +1455,7 @@ function buildFinal2(){
const q=document.getElementById('bb-'+b.n+'-q');
const fb=document.getElementById('bb-'+b.n+'-fb');
if(st.defeated){
stageEl.textContent=' Побеждён';
stageEl.textContent='&#10003; Побеждён';
fill.style.width='100%';
q.innerHTML='<b style="color:'+b.color+'">Босс повержен!</b>';
document.getElementById('bb-'+b.n+'-go').disabled=true;