[FIX] рефакторинг: C1-C4 критичные + W1-W10 предупреждения
C1: LaTeX escaping спецсимволов (& % $ # _ { } ~ ^ \)
C2: text.capitalize() → first char uppercase only
C3: run_xelatex проверяет returncode
C4: парсинг лога при ошибке второго прохода
W1: Удалены мёртвые счётчики section/subsection/subsubsection
W2: text.upper() вычисляется один раз
W3: Единая сигнатура хендлеров (r, tok) для всех
W4: Джэгged строки таблицы паддятся до max колонок
W5: Пустой lang в code fence → без [language=]
W6: hr() вынесен из code.py в hr.py
W7: Валидация обязательных полей front matter
W8: Имя вуза конфигурируется через front matter
W9: -> None аннотация main()
W10: \n в конце END_DOCUMENT
+ Dockerfile: добавлен texlive-fonts-recommended
This commit is contained in:
@@ -10,8 +10,5 @@ if TYPE_CHECKING:
|
||||
def fence(r: Renderer, tok: Token) -> str:
|
||||
lang = tok.info.strip()
|
||||
code = tok.content.rstrip()
|
||||
return f"\\begin{{lstlisting}}[language={lang}]\n{code}\n\\end{{lstlisting}}"
|
||||
|
||||
|
||||
def hr(r: Renderer) -> str:
|
||||
return r"\noindent\rule{\textwidth}{0.4pt}"
|
||||
opts = f"[language={lang}]" if lang else ""
|
||||
return f"\\begin{{lstlisting}}{opts}\n{code}\n\\end{{lstlisting}}"
|
||||
|
||||
Reference in New Issue
Block a user