hot-fix 0.4.3
Python application / build (push) Has been cancelled

- fix Не появляется пустая странициа перед названием таблицы
- fix Не появляется пустая страница перед альбомной ориентацией
- fix При отказе от изменений создаётся новый файл
- fix Замена "..." на «...» больше не затрагивает uml и mermaid блоки
This commit is contained in:
Igor20264
2026-09-05 10:24:13 +03:00
parent 8508d04bbc
commit febf62c257
18 changed files with 267 additions and 49 deletions
+43
View File
@@ -190,6 +190,27 @@ def test_preprocess_quotes():
assert "«тест»" in preprocess_markdown('Он сказал "тест" вслух.')
def test_preprocess_skips_uml_and_mermaid_fences():
md = (
'В тексте "кавычки".\n\n'
"```uml\n"
'rectangle "Акционеры" as own\n'
"```\n\n"
"```mermaid\n"
'title "Выручка"\n'
"```\n\n"
"```uml-c4context\n"
'Person(user, "Заявитель")\n'
"```\n"
)
out = preprocess_markdown(md)
assert "«кавычки»" in out
assert 'rectangle "Акционеры" as own' in out
assert 'title "Выручка"' in out
assert 'Person(user, "Заявитель")' in out
assert "«Акционеры»" not in out
def test_formula_refs():
assert find_formula_refs("см. @Формула:eq1 и далее") == {"eq1"}
@@ -466,6 +487,28 @@ def test_appendix_index_auto_inserted():
assert out2 == [sec, manual, a, b]
def test_table_caption_does_not_set_page_break_before():
import os
import docx
from docx.shared import Mm
from md2gost import package_dir
from md2gost.styles import apply_mirea_styles
from md2gost.layout_tracker import LayoutState
from md2gost.renderable.caption import Caption, CaptionInfo
doc = docx.Document(os.path.join(package_dir(), "Template.docx"))
apply_mirea_styles(doc)
cap = Caption(doc._body, "Таблица", CaptionInfo("t1", "Реквизиты"), "1", True)
state = LayoutState(Mm(250), Mm(160))
state.add_height(Mm(248))
leftover = state.remaining_page_height
infos = list(cap.render(None, state))
assert len(infos) == 1
assert cap._docx_paragraph.style.name == "Название таблицы"
assert cap._docx_paragraph.paragraph_format.page_break_before in (None, False)
assert infos[0].height > leftover
def test_caption_table_keep_with_next_and_toc_styles():
import docx
from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_LINE_SPACING