fix(lesson-editor): рендер формул KaTeX в ячейках таблиц в превью

Превью раньше рендерило KaTeX только в блоках .pv-formula — формулы $...$
в ячейках таблиц показывались сырыми, хотя у ученика (lesson.html) они
рендерятся. Таблица-превью получила класс .pv-table и попадает в KaTeX-проход.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-12 11:16:47 +03:00
parent 6fcdafed50
commit c75e331c02
+3 -3
View File
@@ -3110,8 +3110,8 @@
function renderPreview() { function renderPreview() {
const container = document.getElementById('blocks-container'); const container = document.getElementById('blocks-container');
container.innerHTML = blocks.map(b => renderPreviewBlock(b)).join(''); container.innerHTML = blocks.map(b => renderPreviewBlock(b)).join('');
// KaTeX // KaTeX (формула-блоки + формулы внутри ячеек таблиц)
container.querySelectorAll('.pv-formula').forEach(el => renderKatexIn(el)); container.querySelectorAll('.pv-formula, .pv-table').forEach(el => renderKatexIn(el));
// Highlight.js // Highlight.js
if (window.hljs) { if (window.hljs) {
container.querySelectorAll('pre code').forEach(el => hljs.highlightElement(el)); container.querySelectorAll('pre code').forEach(el => hljs.highlightElement(el));
@@ -3153,7 +3153,7 @@
case 'table': { case 'table': {
const rows = Array.isArray(d.rows) ? d.rows : []; const rows = Array.isArray(d.rows) ? d.rows : [];
const hasH = d.headers !== false; const hasH = d.headers !== false;
let html = '<div class="preview-block"><table>'; let html = '<div class="preview-block pv-table"><table>';
rows.forEach((r, ri) => { rows.forEach((r, ri) => {
html += '<tr>'; html += '<tr>';
r.forEach(c => { const t = (ri===0&&hasH)?'th':'td'; html += `<${t}>${esc(String(c||''))}</${t}>`; }); r.forEach(c => { const t = (ri===0&&hasH)?'th':'td'; html += `<${t}>${esc(String(c||''))}</${t}>`; });