diff --git a/VERSION b/VERSION index d15723f..1c09c74 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.2 +0.3.3 diff --git a/docs/razdeljane-na-sekcii.md b/docs/razdeljane-na-sekcii.md index dd541a5..84bba0b 100644 --- a/docs/razdeljane-na-sekcii.md +++ b/docs/razdeljane-na-sekcii.md @@ -1,6 +1,6 @@ # Разделяне на произволен текст на секции -Този документ описва **реалното** поведение на RIP Help System при разделяне на help-файл на секции. Източникът е `help_processor.py` след последните корекции (вкл. `merge_short_sections` / `merge_preamble_sections`). Не е маркетингово резюме. +Този документ описва **реалното** поведение на RIP Help System при разделяне на help-файл на секции. Източникът е `help_processor.py` след последните корекции (вкл. `merge_short_sections` / `merge_preamble_sections` / номерирани глави). Не е маркетингово резюме. Генерирането на ключови думи е **извън обхвата**, освен един ред в края. @@ -29,22 +29,40 @@ ZIP не е формат за разделяне: разопакова се и ## 2. Какво е граница на секция -**Граница = открито заглавие ниво 1** (H1 / Heading 1 / Заглавие 1) в HTML и DOCX. Текущата секция се затваря (`flush`) и започва нова. Текстът на заглавието става `title` и **не** се копира в тялото на секцията. +В HTML и DOCX граница е едно от: + +1. **H1 / Heading 1 / Заглавие 1** (класическа граница); **или** +2. **Номерирана top-level глава** от вида `1. Заглавие` / `2) Заглавие` — дори ако е H2, bold или Normal — когато редът изглежда като заглавие на глава (виж §2.1). + +Текстът на границата става `title` и **не** се копира в тялото на секцията. В HTML/DOCX **не** отварят нова секция: - Word **Title** / **Наименование** / CSS `Title` / `MsoTitle` — корица; става заглавие на преамбюла (или ред в тялото, ако вече има съдържание); -- „**Съдържание**“ / Contents / TOC и еквиваленти — остават в тялото; -- H2–H6, Subtitle / Подзаглавие, изцяло bold параграфи — влизат като редове в **текущата** секция. +- „**Съдържание**“ / Contents / TOC и еквиваленти — остават в тялото и включват TOC фаза (виж §2.1); +- H2–H6, Subtitle / Подзаглавие, изцяло bold параграфи — **освен** ако текстът е номерирана глава (`N. Title`); +- редове от таблици (`a | b | c`), „Фигура N: …“, дълги изречения с номерация. TXT и PDF запазват своите правила (номерирани редове / по-голям шрифт) — там ниво 2 е нормална граница. -Всичко, което не е граница — параграфи, списъци, таблици, картинки — се добавя към **текущата** секция. - -Ако преди първото H1 има съдържание (корица, TOC), то образува преамбюл секция (с title от корицата, ако има). +Ако преди първата глава има корица + съдържание, те образуват **преамбюл** (title от корицата/първото H1). Ако парсерът не открие нито една секция, файлът става **една** секция без заглавие, с целия извлечен текст. +### 2.1. Номерирани глави и TOC + +Шаблон: `^\d{1,2}[\.\)]\s+\S` , дължина < 120, ≤ 12 думи след номера, без `|`, без „Фигура N“. + +След заглавие „Съдържание“/TOC парсерът влиза в **TOC фаза**: + +- първите срещания на `1. …`, `2. …` (Normal / списък) остават в преамбюла; +- **повторно** срещане на същия текст (реалната глава) затваря TOC фазата и отваря нова секция; +- ако TOC е в `
    `/`