diff options
| author | danilasar <danila.sar@yandex.ru> | 2025-01-03 01:10:11 +0400 |
|---|---|---|
| committer | danilasar <danila.sar@yandex.ru> | 2025-01-03 01:10:11 +0400 |
| commit | da5aa87b1e7ce9e3caf0ed6fa72471c24e9f9c4d (patch) | |
| tree | 8b319f2eb9379370f892e748c75bfb6bb2c5cdef | |
| parent | 0251cc8fc020aff793a2df31e6a6f08a20516d22 (diff) | |
рефактор: генератор содержания занесён в модуль документов
| -rw-r--r-- | conf.typ | 60 |
1 files changed, 30 insertions, 30 deletions
@@ -61,35 +61,6 @@ undefined_spec: [*НЕИЗВЕСТНАЯ СПЕЦИАЛЬНОСТЬ*] ) ) - -#let make_toc( - info: () -) = { - show outline.entry.where( - level: 1 - ): it => { - let heading = it.at("element", default: (:)).at("body", default: "") - if not strings.caps_headings.contains(heading) { - it - return - } - grid( - columns: (auto,1pt, 1fr,1pt, auto), - align: (left, center, right), - row-gutter: 0pt, - rows: (auto), - inset: 0pt, - heading, none, it.fill, none, it.page - ) - v(-28pt) // TODO разобраться, откуда такой отступ после grid - } - - - outline(indent: 2%, title: [Содержание]) - pagebreak(weak: true) -} - - #let indent = 1cm #let styled = [#set text(red)].func() #let space = [ ].func() @@ -382,6 +353,35 @@ v(4.3pt * (0.4 + 0.2)) }, /* + * Генерирует страницу содержания + * Принимает: + * - info - информация о документе + */ + make_toc: + ( + info: () + ) => { + show outline.entry.where( + level: 1 + ): it => { + let heading = it.at("element", default: (:)).at("body", default: "") + if not strings.caps_headings.contains(heading) { + it + return + } + grid( + columns: (auto,1pt, 1fr,1pt, auto), + align: (left, center, right), + row-gutter: 0pt, + rows: (auto), + inset: 0pt, + heading, none, it.fill, none, it.page + ) + v(-28pt) // TODO разобраться, откуда такой отступ после grid + } + outline(indent: 2%, title: [Содержание]) + }, + /* * Генерирует весь документ * Принимает: * - info - информация о документе @@ -422,7 +422,7 @@ // Вывод содержания if settings.contents_page.enabled { - make_toc(info: info) + (self.document.make_toc)(info: info) } // Оформление элементов содержимого документа |