[ADD] пометка правок ==текст== жёлтым выделением
Рецензент просит показывать в отчёте только исправленные места, чтобы не перечитывать текст целиком. Разметка разбирается на уровне текстовых узлов, поэтому «==» в листингах на C++ остаётся сравнением. Выделяется каждое слово отдельно: одной плашкой на всё выделение строка не разорвётся по его середине, а выделять приходится и целые предложения. Составное слово делится по дефису — плашка неразрывна, и шорткат переноса внутри неё не работает. soul не подошёл: под XeLaTeX его \hl теряет кириллицу.
This commit is contained in:
@@ -37,6 +37,30 @@ def test_unnumbered_heading() -> None:
|
||||
assert "ВВЕДЕНИЕ" in tex
|
||||
|
||||
|
||||
def test_mark_highlights_every_word() -> None:
|
||||
tex = render("Обычный ==правленый текст== дальше.\n")
|
||||
assert "\\hlw{правленый} \\hlw{текст}" in tex
|
||||
assert "Обычный " in tex
|
||||
assert " дальше." in tex
|
||||
|
||||
|
||||
def test_mark_splits_compound_word_into_separate_boxes() -> None:
|
||||
# Плашка неразрывна: составное слово одним боксом вылезает за поле.
|
||||
tex = render("==аппаратно-программный комплекс==\n")
|
||||
assert "\\hlw{аппаратно}\\hlw{-}\\allowbreak \\hlw{программный}" in tex
|
||||
|
||||
|
||||
def test_mark_in_heading_reaches_the_contents() -> None:
|
||||
tex = render("## ==Контейнеризация серверного приложения==\n")
|
||||
assert "\\subsection{\\hlw{Контейнеризация}" in tex
|
||||
|
||||
|
||||
def test_comparison_in_listing_is_not_a_mark() -> None:
|
||||
tex = body(render("```cpp\nif (a==b && c==d) return;\n```\n"))
|
||||
assert "\\hlw" not in tex
|
||||
assert "a==b" in tex
|
||||
|
||||
|
||||
def test_list_punctuation() -> None:
|
||||
tex = render("- один\n- два\n- три\n")
|
||||
assert " \\item один;" in tex
|
||||
|
||||
Reference in New Issue
Block a user