polytypo 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -61,68 +61,9 @@
61
61
  ],
62
62
  "beforeNumber": [],
63
63
  "beforeWord": [],
64
- "afterSymbols": ["§"],
64
+ "afterSymbols": [
65
+ "§"
66
+ ],
65
67
  "initialBinding": "none"
66
- },
67
- "sources": [
68
- {
69
- "rule": "quotes",
70
- "cite": "Språkrådet (Institutet för språk och folkminnen), Snabba skrivregler – i skolan och på jobbet, red. Ola Karlsson, §1.13 “Citattecken (”)”",
71
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
72
- "note": "Verbatim: “Normala svenska citattecken ser ut som två små upphöjda nior och har samma form i början och slutet, alltså ”ord”. Men citattecken kan ha olika utseende i olika typsnitt och i olika språk, som i “engelska”, „tyska“ och «norska». Använd svenska citattecken i svensk text, även om det du citerar är på ett annat språk.” This settles the ❓ in PLAN.md §7: »…» is attested in Swedish book typography and older practice, but Språkrådet’s current recommendation is ”…” (U+201D on both sides), so that is what this file encodes."
73
- },
74
- {
75
- "rule": "quotes",
76
- "cite": "Språkrådet, Snabba skrivregler, §1.14 “Apostrof (’)”",
77
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
78
- "note": "Verbatim: “En apostrof ser ut som en liten upphöjd nia (’). … Apostrof används även vid citat inuti ett citat, se ▶ 6.1.1.” Hence the secondary pair is U+2019 on both sides. Isof’s Frågelådan phrases the same rule as “enkla citattecken … när du har ett citat i ett citat”."
79
- },
80
- {
81
- "rule": "dashes",
82
- "cite": "Språkrådet, Snabba skrivregler, §1.10 “Tankstreck (–)”",
83
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
84
- "note": "Range, verbatim: “Det används framför allt mellan siffror och mellan ortnamn för att visa till exempel tidsperioder, avstånd och intervall. Du har då inget mellanslag före eller efter tankstrecket.” (öppet 9–18, åren 2026–2028, s. 3–5). Parenthetical, verbatim: “Tankstreck kan ibland användas före paus eller tillägg. På samma sätt används det vid mer självständiga inskott … Då har du mellanslag före och efter tankstrecket.” Swedish uses the en dash (tankstreck) in both roles; there is no em dash in the recommendation."
85
- },
86
- {
87
- "rule": "ellipsis",
88
- "cite": "Språkrådet, Snabba skrivregler, kap. 1 “Skiljetecken och skrivtecken” (tre punkter)",
89
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
90
- "note": "`abbreviatedAfterTerminal` is false. The guide treats “tre punkter” as an ordinary mark alongside utropstecken and frågetecken; no two-dot form after `!`/`?` exists in Swedish. That form is Russian-only."
91
- },
92
- {
93
- "rule": "nbsp",
94
- "cite": "Språkrådet, Snabba skrivregler, §1.16 “Tecken och mellanslag”",
95
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
96
- "note": "Verbatim: “Tecken som ersätter ord, som & för och, + för plus och % för procent, skrivs helst med mellanslag före och efter, precis som när du skriver ut orden: 5 % eftersom du skriver fem procent.” Examples given: “Ek & Lund (Ek och Lund), 3 € (tre euro), § 7 (paragraf sju), 2 + 3 (två plus tre)”. And: “För att de tecken och siffror som hör ihop ska hamna på samma rad och inte på olika rader, kan du använda så kallat fast mellanslag.” This is the authority for `%`, `€` and `§`. Note the direction: Språkrådet’s own example is “§ 7”, the sign before the number, so `§` is in `afterSymbols`, the opposite of Finnish. Swedish legal citation also writes “5 §”; that order is not covered by the cited example and is deliberately not encoded. `&` and `+` are omitted because they take a space on both sides and do not fit this schema’s bind-to-a-number model."
97
- },
98
- {
99
- "rule": "nbsp",
100
- "cite": "Språkrådet, Snabba skrivregler, §4.3.4 “Förkortningar för måttenheter”; BIPM, The International System of Units (SI), 9th ed. (2019), concise summary",
101
- "url": "https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-concise-EN.pdf",
102
- "note": "Språkrådet verbatim: “Internationella förkortningar för måttenheter går alltid bra att skriva som förkortningar, som cm (centimeter), kg (kilo), kWh (kilowattimme) och ml (milliliter). Dessa skriver du alltid utan punkt. Så skriver du också svenska förkortningar som liknar måttenheter, som kr (kronor), min (minut), sek (sekund) och tim (timme).” BIPM verbatim: “A single space is always left between the number and the unit.” The unit list is restricted to forms named by one of these two sources."
103
- },
104
- {
105
- "rule": "nbsp",
106
- "cite": "Språkrådet, Snabba skrivregler, §4.3.1 and §4.5 “Vanliga förkortningar”",
107
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
108
- "note": "`abbreviations` is empty because Swedish multi-word abbreviations are written closed up, with no internal space: the guide’s own list gives bl.a., dvs., e.d., fr.o.m., f.d., f.ö., m.a.o., m.fl., m.m., obs., osv., p.g.a., s.k., t.ex., t.o.m. There is therefore no internal space to make non-breaking. (Older typographic practice spaced these — “t. ex.” — but that is not the current recommendation.)"
109
- },
110
- {
111
- "rule": "nbsp",
112
- "cite": "No Språkrådet guidance found for short-word binding or for initials; values deliberately conservative",
113
- "note": "`afterShortWords`, `beforePunctuation` and `narrowBeforePunctuation` are empty by design. §1.16 states the general rule plainly — “När du använder vanliga skiljetecken sätter du inget mellanslag före tecknet, men efter tecknet ska du ha mellanslag” — which rules out any before-punctuation space, and Swedish has no rule against short words at line end. `initialBinding` is \"none\" (spec 0.6.0: the field used to be the boolean bindInitials, false): §1.16 recommends fast mellanslag only for “de tecken och siffror som hör ihop”, i.e. signs and digits, not personal initials."
114
- },
115
- {
116
- "rule": "nbsp",
117
- "cite": "Språkrådet, Snabba skrivregler, §1.16 “Tecken och mellanslag” and §4.5 “Vanliga förkortningar”",
118
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
119
- "note": "`beforeNumber` and `beforeWord` are empty, and this was the closest call in this file. Språkrådet does write kl. 8–16, nr 3 and s. 3–5, and §1.16 recommends fast mellanslag so that “de tecken och siffror som hör ihop ska hamna på samma rad”. But that sentence is scoped to tecken — the sign-and-digit pairs of §1.16 (%, €, §, &, +) — and the guide nowhere extends it to abbreviations such as kl., nr or s. Encoding them would convert a plausible reading into a normative claim the source does not make, so the lists stay empty. `beforeWord` likewise: no Swedish authority consulted requires binding a title (dr, prof.) to a following name."
120
- },
121
- {
122
- "rule": "hyphen",
123
- "cite": "Språkrådet, Snabba skrivregler, §4.4 (sammansättningar med förkortningar) and kap. 7 (avstavning)",
124
- "url": "https://www.diva-portal.org/smash/get/diva2:1829117/FULLTEXT04.pdf",
125
- "note": "`prefixes`, `suffixes` and `compounds` are empty. The guide’s hyphen material states when to insert a bindestreck in compounds (e-post, EU-länderna, FN-arbete, satellit-tv-program, lan-spel) and treats avstavning as a separate topic; it never forbids a line break at an existing hyphen. Swedish compounding is productive, so there is no closed inventory to list — the field exists for the Russian кое- / -таки / из-под case. No U+2011 requirement found in any Språkrådet material consulted."
126
- }
127
- ]
68
+ }
128
69
  }
@@ -26,8 +26,21 @@
26
26
  "abbreviatedAfterTerminal": true
27
27
  },
28
28
  "hyphen": {
29
- "prefixes": ["будь-", "казна-", "хтозна-", "бозна-"],
30
- "suffixes": ["-бо", "-но", "-от", "-то", "-таки", "-будь", "-небудь"],
29
+ "prefixes": [
30
+ "будь-",
31
+ "казна-",
32
+ "хтозна-",
33
+ "бозна-"
34
+ ],
35
+ "suffixes": [
36
+ "-бо",
37
+ "-но",
38
+ "-от",
39
+ "-то",
40
+ "-таки",
41
+ "-будь",
42
+ "-небудь"
43
+ ],
31
44
  "compounds": [
32
45
  "вид-во",
33
46
  "гр-н",
@@ -54,7 +67,12 @@
54
67
  "beforePunctuation": [],
55
68
  "narrowBeforePunctuation": [],
56
69
  "afterShortWords": [],
57
- "abbreviations": ["і т. д.", "і т. ін.", "та ін.", "куб. см"],
70
+ "abbreviations": [
71
+ "і т. д.",
72
+ "і т. ін.",
73
+ "та ін.",
74
+ "куб. см"
75
+ ],
58
76
  "beforeUnits": [
59
77
  "%",
60
78
  "га",
@@ -77,58 +95,12 @@
77
95
  "р."
78
96
  ],
79
97
  "beforeNumber": [],
80
- "beforeWord": ["акад.", "доц.", "проф."],
98
+ "beforeWord": [
99
+ "акад.",
100
+ "доц.",
101
+ "проф."
102
+ ],
81
103
  "afterSymbols": [],
82
104
  "initialBinding": "chain"
83
- },
84
- "sources": [
85
- {
86
- "rule": "quotes",
87
- "cite": "Український правопис (2019), схвалений Кабінетом Міністрів України (Постанова № 437 від 22.05.2019), § 164 «ЛАПКИ (« », “ ”, „ “, рідше „ ”)», п. 3: «У функції перших рекомендовано вживати кутові лапки, або «лапки-ялинки» («…»), у функції внутрішніх — «лапки-лапки» (“…” та ін.): «Це мій “Кобзар”», — сказав він»; там само: «На письмі (у рукописних текстах) «лапки-лапки» традиційно використовують у формі „…“»",
88
- "url": "https://www.ulif.org.ua/system/files/pravopus-new.pdf",
89
- "note": "Зовнішні лапки — U+00AB і U+00BB, внутрішні — U+201C і U+201D. Код кожного знака встановлено за друкованим зображенням с. 247 офіційного видання, а не за текстовою конверсією: у прикладі § 164 п. 3 обидва внутрішні знаки підняті до верху рядка, відкривальний має форму 6, закривальний — форму 9. ЦЕ СПРОСТОВУЄ поширене припущення, що українська бере всередину „…“: заголовок § 164 справді дозволяє чотири пари, але саме п. 3 відносить „…“ до РУКОПИСНИХ текстів, а для друкованого рекомендує “…”. innerSpace = «none»: жодне джерело не вимагає відступу всередині лапок. Третій рівень вкладення в locale.schema.json невиразний. Звірено 18.09.2026."
90
- },
91
- {
92
- "rule": "dashes",
93
- "cite": "Український правопис (2019), § 161 «ТИРЕ (—)», I, п. 10—11 і Примітка 2: тире ставимо перед відокремленим зворотом або вставленою конструкцією — «Топольський — молодий чоловік, але — на думку пана посла — незвичайно талановитий і солідний» (О. Маковей)",
94
- "url": "https://www.ulif.org.ua/system/files/pravopus-new.pdf",
95
- "note": "Обґрунтовує dash.parenthetical = «em-spaced». ДОВЖИНА встановлена прямо: заголовок параграфа — «ТИРЕ (—)», тобто U+2014, і цей самий знак стоїть у кожному прикладі §§ 161, 166, 167. ВІДБИВКА встановлена протиставленням, а не прозовим формулюванням: правопис ніде не пише «тире відбивається пробілами», але Примітка до п. 14 каже «тире ставимо без відступів між знаками» саме для випадку між цифрами, а «без відступів» має сенс лише як відхилення від відбитого за замовчуванням. Це єдиний запис цього файлу, що спирається на висновок із тексту джерела, і він позначений як такий свідомо. Звірено 18.09.2026."
96
- },
97
- {
98
- "rule": "ranges",
99
- "cite": "Український правопис (2019), § 161 «ТИРЕ (—)», I, п. 14, Примітка: «Між цифрами в таких випадках тире ставимо без відступів між знаками: у 2010—2018 роках; пам'ятки української мови XVI—XVIII ст.; на сторінках 1—10; у 1—4 томах, але, напр.: наприкінці XX — на початку XXI ст.»",
100
- "url": "https://www.ulif.org.ua/system/files/pravopus-new.pdf",
101
- "note": "Обґрунтовує dash.range = «em-tight»: довге тире U+2014 без відбивки. Протиставлення в самій Примітці («на сторінках 1—10» без відступів, але «наприкінці XX — на початку XXI ст.» з відступами) показує, що безвідступна форма стосується рівно того, що робить правило ranges. Правило вимкнене за замовчуванням (spec 0.5.0). Звірено 18.09.2026."
102
- },
103
- {
104
- "rule": "ellipsis",
105
- "cite": "Український правопис (2019), § 162 «ТРИ КРАПКИ, АБО КРАПКИ (…)», Примітка: «у постпозиції — після знака питання і знака оклику — ставимо дві крапки: Стражники на людей стріляли, це відомо, а щоб селяни?.. (К. Гордієнко); Встає народ, гудуть мости, Рокочуть ріки ясноводі!.. (М. Рильський)»; § 166 «КОМБІНОВАНЕ ВЖИВАННЯ РОЗДІЛОВИХ ЗНАКІВ», п. 2, що перелічує допустимі поєднання як «…?; …!; ?..; !..»",
106
- "url": "https://www.ulif.org.ua/system/files/pravopus-new.pdf",
107
- "note": "Обґрунтовує abbreviatedAfterTerminal = true. Українська — друга після російської локаль із цим значенням, і це перевірено окремо за двома параграфами, а не перенесено за аналогією зі спорідненої мови. Звірено 18.09.2026."
108
- },
109
- {
110
- "rule": "hyphen",
111
- "cite": "Український правопис (2019), § 64 «Технічні правила переносу», п. 4: «Не можна розривати умовні (графічні) скорочення на зразок вид-во, і т. д., і т. ін., та ін., т-во тощо»; § 62, п. 2: «У графічних скороченнях пропущену середню частину слова позначаємо дефісом: вид-во (видавництво), гр-н (громадянин), ін-т (інститут), р-н (район), ун-т (університет), ф-ка (фабрика)»",
112
- "url": "https://www.ulif.org.ua/system/files/pravopus-new.pdf",
113
- "note": "Це єдина частина hyphen для української, де НЕРОЗРИВНІСТЬ САМА Є НОРМОЮ, а не рішенням проєкту: § 64 п. 4 прямо забороняє розривати цей клас, а § 62 п. 2 закриває його літеральним переліком, бо «тощо» в § 64 залишає клас відкритим. Українська цим відрізняється від польської, де PWN [196] поділ у місці дефіса саме ПРИПИСУЄ, через що pl.json має три порожні списки. Звірено 18.09.2026."
114
- },
115
- {
116
- "rule": "hyphen",
117
- "cite": "Український правопис (2019), § 42 «Прийменники», п. 2: «З дефісом пишемо складені прийменники, утворені з простих прийменників з, із та інших прийменників: з-за (із-за), з-над, з-перед, з-під (із-під), з-поза, з-поміж, з-понад, з-попід, з-посеред, з-проміж»; § 44 «Частки», п. 3: «З дефісом пишемо: 1) частки -бо, -но, -от, -то, -таки … 2) частки будь-, -будь, -небудь, казна-, хтозна-, бозна- із займенниками і прислівниками»",
118
- "url": "https://www.ulif.org.ua/system/files/pravopus-new.pdf",
119
- "note": "Ці параграфи нормативні для СКЛАДУ форм, але не для заборони переносу, і змішувати це не можна — так само, як у ru.json. §§ 63 і 64 прочитано повністю: § 63 нормує поділ за складами, § 64 забороняє розривати ініціали, назви мір, нарощення й графічні скорочення, але про дефіс у формах §§ 42 і 44 не каже нічого. Отже, для цих класів зв'язування через U+2011 — рішення проєкту (docs/PLAN.md §3.3), а не орфографічна норма, і це записано прямо. НЕ ВНЕСЕНО, свідомо: § 64 п. 3 («Граматичні закінчення, поєднані із цифрами дефісом, не можна відривати й переносити: 2-й, 4-го, 10-му») нормативно нерозривний, але це форма «цифра-дефіс-літера»; чи є це членством у hyphen.suffixes, чи вже алгоритмом, має вирішити spec-guardian. Звірено 18.09.2026."
120
- },
121
- {
122
- "rule": "nbsp",
123
- "cite": "Український правопис (2019), § 64 «Технічні правила переносу», п. 1: «Не можна переносити прізвища, залишаючи в кінці попереднього рядка ініціали або інші умовні скорочення, що належать до них: Т. Г. Шевченко (не Т. Г. // Шевченко), гр. Іваненко, акад. (доц., проф.) Гончаренко, п. Гнатюк»; п. 4: «Не можна розривати умовні (графічні) скорочення на зразок вид-во, і т. д., і т. ін., та ін., т-во тощо»; п. 5: «Не можна переносити в наступний рядок розділові знаки (крім тире), дужку або лапки, що закривають попередній рядок»",
124
- "url": "https://www.ulif.org.ua/system/files/pravopus-new.pdf",
125
- "note": "§ 64 — ЗАКРИТИЙ перелік із п'яти пунктів, і це важливо не лише тим, що він містить, а й тим, чого в ньому немає. (1) initialBinding = «chain»: п. 1 наводить послідовність ДВОХ ініціалів і не дає прикладу одного ініціала перед прізвищем. (2) beforeWord: з п. 1 взято лише «акад.», «доц.», «проф.». «п.» і «гр.» свідомо НЕ внесено за тією самою дисципліною, з якої ru.json виключає «г.»: «п.» — це також «пункт» («п. 3»), «гр.» — також «градус» і «графа», а літеральний список цих напрямків не розрізняє. (3) beforePunctuation і narrowBeforePunctuation порожні: п. 5 прив'язує розділовий знак до ПОПЕРЕДНЬОГО слова — це заперечення, а не мовчання. (4) afterShortWords ПОРОЖНІЙ, і це підтверджена відсутність норми: перелік § 64 закритий, правила про однобуквені прийменники в ньому немає, а в самому правописі «і», «у», «в», «з» регулярно стоять у кінці рядка. Список ru.json сюди НЕ переноситься за аналогією, хоча мови споріднені. (5) afterSymbols і beforeNumber порожні: конструкцій «символ + число» і «скорочення + число» § 64 не містить. Звірено 18.09.2026."
126
- },
127
- {
128
- "rule": "nbsp",
129
- "cite": "Український правопис (2019), § 64, п. 2: «Не можна відривати скорочені назви мір від цифр, до яких вони належать: 2008 р. (не 2008 // р.), 150 га (не 150 // га), 20 см³ або 20 куб. см, 5 г (не 5 // г)»; § 62: «Скорочені назви одиниць вимірювання пишемо без крапок: Б — байт, Вт — ват, г — грам, га — гектар, год — година, дм — дециметр, кБ — кілобайт, кВт — кіловат, кг — кілограм, км — кілометр, л — літр, м — метр, мм — міліметр, с — секунда, см — сантиметр, т — тонна, хв — хвилина, ц — центнер»; BIPM, The International System of Units (SI), 9th ed., concise summary: «A single space is always left between the number and the unit»",
130
- "url": "https://www.bipm.org/documents/20126/41483022/SI-Brochure-9-concise-EN.pdf",
131
- "note": "Розподіл ролей тут ІНШИЙ, ніж у pl, fi, sv і en-US: там BIPM дає перелік символів, а національне джерело — конвенцію відступу; для української національне джерело дає і те, і те, бо § 64 п. 2 нормує саме невідривність. BIPM наведено як підтвердження загального принципу, а не як несуча цитата. Однобуквені позначення (г, л, м, с, т, ц, Б) свідомо пропущено: правий кордон N5 вимагає лише, щоб cp[a+k] не належав ALNUM, і пробіл цю умову задовольняє, тож однобуквений запис зв'язував би звичайну прозу. «р.» внесено: на відміну від російського «г.», українське «р.» означає тільки «рік» і зв'язується вліво після числа. «%» внесено ЯК РІШЕННЯ, а не як цитата: його немає ні в § 62, ні в § 64, ні в скороченому викладі брошури BIPM (правило про % — у § 5.4.7 повного видання, яке не діставалося), але відбивка відсотка від числа є і в російській локалі, і в усіх інших локалях цього проєкту, а розбіжність тут дала б українській вужчу поведінку без жодної підстави в джерелі. Звірено 18.09.2026."
132
- }
133
- ]
105
+ }
134
106
  }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Polytypo
4
- VERSION = "1.4.0"
4
+ VERSION = "1.4.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polytypo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Iurii Rogulia