• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sile-typesetter / sile / 9400954821

06 Jun 2024 11:12AM UTC coverage: 61.625% (-11.6%) from 73.209%
9400954821

push

github

web-flow
Merge pull request #2041 from alerque/keep-space-after-envs

2 of 30 new or added lines in 2 files covered. (6.67%)

1933 existing lines in 67 files now uncovered.

10613 of 17222 relevant lines covered (61.62%)

2870.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/languages/ca.lua
UNCOV
1
SILE.nodeMakers.ca = pl.class({
×
2
   _base = SILE.nodeMakers.unicode,
3

4
   -- overriden properties from parent class
5
   quoteTypes = { qu = true }, -- split tokens at apostrophes &c.
6
})
7

UNCOV
8
SILE.hyphenator.languages["ca"] = {}
×
9

UNCOV
10
SILE.hyphenator.languages["ca"].hyphenateSegments = function (node, segments, j)
×
11
   -- punt volat (middle dot) cancels when hyphenated
12
   -- Catalan typists may use a punt volat or precomposed characters.
13
   -- The shaper might behave differently depending on the font, so we need to
14
   -- be consistent here with the typist's choice.
UNCOV
15
   local hyphenChar = SILE.settings:get("font.hyphenchar")
×
16
   local replacement, hyphen
UNCOV
17
   if luautf8.find(segments[j], "ŀ$") then -- U+0140
×
UNCOV
18
      segments[j] = luautf8.sub(segments[j], 1, -2)
×
UNCOV
19
      replacement = SILE.shaper:createNnodes("ŀ", node.options)
×
UNCOV
20
      hyphen = SILE.shaper:createNnodes("l" .. hyphenChar, node.options)
×
UNCOV
21
   elseif luautf8.find(segments[j], "Ŀ$") then -- U+013F
×
22
      segments[j] = luautf8.sub(segments[j], 1, -2)
×
23
      replacement = SILE.shaper:createNnodes("Ŀ", node.options)
×
24
      hyphen = SILE.shaper:createNnodes("L" .. hyphenChar, node.options)
×
UNCOV
25
   elseif luautf8.find(segments[j], "l·$") then -- l + U+00B7
×
UNCOV
26
      segments[j] = luautf8.sub(segments[j], 1, -3)
×
UNCOV
27
      replacement = SILE.shaper:createNnodes("l·", node.options)
×
UNCOV
28
      hyphen = SILE.shaper:createNnodes("l" .. hyphenChar, node.options)
×
UNCOV
29
   elseif luautf8.find(segments[j], "L·$") then -- L + U+00B7
×
30
      segments[j] = luautf8.sub(segments[j], 1, -3)
×
31
      replacement = SILE.shaper:createNnodes("L·", node.options)
×
32
      hyphen = SILE.shaper:createNnodes("L" .. hyphenChar, node.options)
×
33
   else
UNCOV
34
      hyphen = SILE.shaper:createNnodes(hyphenChar, node.options)
×
35
   end
UNCOV
36
   local discretionary = SILE.types.node.discretionary({ replacement = replacement, prebreak = hyphen })
×
UNCOV
37
   return discretionary, segments
×
38
end
39

UNCOV
40
SILE.hyphenator.languages["ca"].patterns = {
×
41
   --
42
   -- Attach vowel groups to left consonant
43
   "1ba",
44
   "1be",
45
   "1bi",
46
   "1bo",
47
   "1bu",
48
   "1ca",
49
   "1ce",
50
   "1ci",
51
   "1co",
52
   "1cu",
53
   "1da",
54
   "1de",
55
   "1di",
56
   "1do",
57
   "3du",
58
   "1fa",
59
   "1fe",
60
   "1fi",
61
   "1fo",
62
   "1fu",
63
   "1ga",
64
   "1ge",
65
   "1gi",
66
   "1go",
67
   "1gu",
68
   "1ha",
69
   "1he",
70
   "1hi",
71
   "1ho",
72
   "1hu",
73
   "1ja",
74
   "1je",
75
   "1ji",
76
   "1jo",
77
   "1ju",
78
   "1la",
79
   "1le",
80
   "1li",
81
   "1lo",
82
   "1lu",
83
   "1ma",
84
   "1me",
85
   "1mi",
86
   "1mo",
87
   "1mu",
88
   "1na",
89
   "1ne",
90
   "3ni",
91
   "1no",
92
   "1nu",
93
   "1pa",
94
   "3pe",
95
   "3pi",
96
   "3po",
97
   "1pu",
98
   "1qu",
99
   "1ra",
100
   "1re",
101
   "1ri",
102
   "1ro",
103
   "1ru",
104
   "1sa",
105
   "1se",
106
   "1si",
107
   "1so",
108
   "1su",
109
   "1ta",
110
   "1te",
111
   "1ti",
112
   "1to",
113
   "1tu",
114
   "1va",
115
   "1ve",
116
   "1vi",
117
   "1vo",
118
   "1vu",
119
   "1xa",
120
   "1xe",
121
   "1xi",
122
   "1xo",
123
   "1xu",
124
   "1za",
125
   "1ze",
126
   "1zi",
127
   "1zo",
128
   "1zu",
129
   "1bé",
130
   "1bí",
131
   "1bó",
132
   "1bú",
133
   "1bà",
134
   "1bè",
135
   "1bò",
136
   "1cé",
137
   "1cí",
138
   "1có",
139
   "1cú",
140
   "1cà",
141
   "1cè",
142
   "1cò",
143
   "1ço",
144
   "1ça",
145
   "1çu",
146
   "1çó",
147
   "1çú",
148
   "1çà",
149
   "1çò",
150
   "1dé",
151
   "1dí",
152
   "1dó",
153
   "1dú",
154
   "1dà",
155
   "1dè",
156
   "1dò",
157
   "1fé",
158
   "1fí",
159
   "1fó",
160
   "1fú",
161
   "1fà",
162
   "1fè",
163
   "1fò",
164
   "1gé",
165
   "1gí",
166
   "1gó",
167
   "1gú",
168
   "1gà",
169
   "1gè",
170
   "1gò",
171
   "1gü",
172
   "1hé",
173
   "1hí",
174
   "1hó",
175
   "1hú",
176
   "1hà",
177
   "1hè",
178
   "1hò",
179
   "1jé",
180
   "1jí",
181
   "1jó",
182
   "1jú",
183
   "1jà",
184
   "1jè",
185
   "1jò",
186
   "1lé",
187
   "1lí",
188
   "1ló",
189
   "1lú",
190
   "1là",
191
   "1lè",
192
   "1lò",
193
   "1mé",
194
   "1mí",
195
   "1mó",
196
   "1mú",
197
   "1mà",
198
   "1mè",
199
   "1mò",
200
   "1né",
201
   "1ní",
202
   "1nó",
203
   "1nú",
204
   "1nà",
205
   "1nè",
206
   "1nò",
207
   "1pé",
208
   "1pí",
209
   "1pó",
210
   "1pú",
211
   "1pà",
212
   "1pè",
213
   "1pò",
214
   "1qü",
215
   "1ré",
216
   "1rí",
217
   "1ró",
218
   "1rú",
219
   "1rà",
220
   "1rè",
221
   "1rò",
222
   "1sé",
223
   "1sí",
224
   "1só",
225
   "1sú",
226
   "1sà",
227
   "1sè",
228
   "1sò",
229
   "1té",
230
   "1tí",
231
   "1tó",
232
   "1tú",
233
   "1tà",
234
   "1tè",
235
   "1tò",
236
   "1vé",
237
   "1ví",
238
   "1vó",
239
   "1vú",
240
   "1và",
241
   "1vè",
242
   "1vò",
243
   "1xé",
244
   "1xí",
245
   "1xó",
246
   "1xú",
247
   "1xà",
248
   "1xè",
249
   "1xò",
250
   "1zé",
251
   "1zí",
252
   "1zó",
253
   "1zú",
254
   "1zà",
255
   "1zè",
256
   "1zò",
257
   --
258
   -- Build legal consonant groups, leave other consonants bound to
259
   -- the previous group. This overrides part of the previous pattern
260
   -- group.
261
   "3l2la",
262
   "1l2le",
263
   "1l2li",
264
   "3l2lo",
265
   "1l2lu",
266
   "1b2la",
267
   "1b2le",
268
   "1b2li",
269
   "1b2lo",
270
   "1b2lu",
271
   "1b2ra",
272
   "1b2re",
273
   "1b2ri",
274
   "1b2ro",
275
   "1b2ru",
276
   "1c2la",
277
   "1c2le",
278
   "1c2li",
279
   "1c2lo",
280
   "1c2lu",
281
   "1c2ra",
282
   "1c2re",
283
   "1c2ri",
284
   "1c2ro",
285
   "1c2ru",
286
   "1d2ra",
287
   "1d2re",
288
   "1d2ri",
289
   "1d2ro",
290
   "1d2ru",
291
   "1f2la",
292
   "1f2le",
293
   "1f2li",
294
   "1f2lo",
295
   "1f2lu",
296
   "1f2ra",
297
   "1f2re",
298
   "1f2ri",
299
   "1f2ro",
300
   "1f2ru",
301
   "1g2la",
302
   "1g2le",
303
   "1g2li",
304
   "1g2lo",
305
   "1g2lu",
306
   "1g2ra",
307
   "1g2re",
308
   "1g2ri",
309
   "1g2ro",
310
   "1g2ru",
311
   "1p2la",
312
   "1p2le",
313
   "1p2li",
314
   "1p2lo",
315
   "1p2lu",
316
   "1p2ra",
317
   "1p2re",
318
   "1p2ri",
319
   "1p2ro",
320
   "1p2ru",
321
   "1t2ra",
322
   "1t2re",
323
   "1t2ri",
324
   "1t2ro",
325
   "1t2ru",
326
   "1n2ya",
327
   "1n2ye",
328
   "1n2yi",
329
   "1n2yo",
330
   "1n2yu",
331
   "1l2lé",
332
   "1l2lí",
333
   "1l2ló",
334
   "1l2lú",
335
   "1l2là",
336
   "1l2lè",
337
   "1l2lò",
338
   "1b2lé",
339
   "1b2lí",
340
   "1b2ló",
341
   "1b2lú",
342
   "1b2là",
343
   "1b2lè",
344
   "1b2lò",
345
   "1b2ré",
346
   "1b2rí",
347
   "1b2ró",
348
   "1b2rú",
349
   "1b2rà",
350
   "1b2rè",
351
   "1b2rò",
352
   "1c2lé",
353
   "1c2lí",
354
   "1c2ló",
355
   "1c2lú",
356
   "1c2là",
357
   "1c2lè",
358
   "1c2lò",
359
   "1c2ré",
360
   "1c2rí",
361
   "1c2ró",
362
   "1c2rú",
363
   "1c2rà",
364
   "1c2rè",
365
   "1c2rò",
366
   "1d2ré",
367
   "1d2rí",
368
   "1d2ró",
369
   "1d2rú",
370
   "1d2rà",
371
   "1d2rè",
372
   "1d2rò",
373
   "1f2lé",
374
   "1f2lí",
375
   "1f2ló",
376
   "1f2lú",
377
   "1f2là",
378
   "1f2lè",
379
   "1f2lò",
380
   "1f2ré",
381
   "1f2rí",
382
   "1f2ró",
383
   "1f2rú",
384
   "1f2rà",
385
   "1f2rè",
386
   "1f2rò",
387
   "1g2lé",
388
   "1g2lí",
389
   "1g2ló",
390
   "1g2lú",
391
   "1g2là",
392
   "1g2lè",
393
   "1g2lò",
394
   "1g2ré",
395
   "1g2rí",
396
   "1g2ró",
397
   "1g2rú",
398
   "1g2rà",
399
   "1g2rè",
400
   "1g2rò",
401
   "1p2lé",
402
   "1p2lí",
403
   "1p2ló",
404
   "1p2lú",
405
   "1p2là",
406
   "1p2lè",
407
   "1p2lò",
408
   "1p2ré",
409
   "1p2rí",
410
   "1p2ró",
411
   "1p2rú",
412
   "1p2rà",
413
   "1p2rè",
414
   "1p2rò",
415
   "1t2ré",
416
   "1t2rí",
417
   "1t2ró",
418
   "1t2rú",
419
   "1t2rà",
420
   "1t2rè",
421
   "1t2rò",
422
   "1n2yé",
423
   "1n2yí",
424
   "1n2yó",
425
   "1n2yú",
426
   "1n2yà",
427
   "1n2yè",
428
   "1n2yò",
429
   -- Vowels are kept together by the defaults
430
   -- We break here diphthongs and the like
431
   "a1a",
432
   "a1e",
433
   "a1o",
434
   "e1a",
435
   "e1e",
436
   "e1o",
437
   "i1a",
438
   "i1e",
439
   "i1o",
440
   "o1a",
441
   "o1e",
442
   "o1o",
443
   "u1a",
444
   "u1e",
445
   "u1o",
446
   "a1é",
447
   "a1í",
448
   "a1ó",
449
   "a1ú",
450
   "a1à",
451
   "a1è",
452
   "a1ò",
453
   "a1ï",
454
   "a1ü",
455
   "e1é",
456
   "e1í",
457
   "e1ó",
458
   "e1ú",
459
   "e1à",
460
   "e1è",
461
   "e1ò",
462
   "e1ï",
463
   "e1ü",
464
   "i1é",
465
   "i1í",
466
   "i1ó",
467
   "i1ú",
468
   "i1à",
469
   "i1è",
470
   "i1ò",
471
   "i1ï",
472
   "i1ü",
473
   "o1é",
474
   "o1í",
475
   "o1ó",
476
   "o1ú",
477
   "o1à",
478
   "o1è",
479
   "o1ò",
480
   "o1ï",
481
   "o1ü",
482
   "u1é",
483
   "u1í",
484
   "u1ó",
485
   "u1ú",
486
   "u1à",
487
   "u1è",
488
   "u1ò",
489
   "u1ï",
490
   "u1ü",
491
   "é1a",
492
   "é1e",
493
   "é1o",
494
   "é1ï",
495
   "é1ü",
496
   "í1a",
497
   "í1e",
498
   "í1o",
499
   "í1ï",
500
   "í1ü",
501
   "ó1a",
502
   "ó1e",
503
   "ó1o",
504
   "ó1ï",
505
   "ó1ü",
506
   "ú1a",
507
   "ú1e",
508
   "ú1o",
509
   "ú1ï",
510
   "ú1ü",
511
   "à1a",
512
   "à1e",
513
   "à1o",
514
   "à1ï",
515
   "à1ü",
516
   "è1a",
517
   "è1e",
518
   "è1o",
519
   "è1ï",
520
   "è1ü",
521
   "ò1a",
522
   "ò1e",
523
   "ò1o",
524
   "ò1ï",
525
   "ò1ü",
526
   "ï1a",
527
   "ï1e",
528
   "ï1o",
529
   "ï1é",
530
   "ï1í",
531
   "ï1ó",
532
   "ï1ú",
533
   "ï1à",
534
   "ï1è",
535
   "ï1ò",
536
   "ï1i",
537
   "ü1a",
538
   "ü1e",
539
   "ü1o",
540
   "ü1é",
541
   "ü1í",
542
   "ü1ó",
543
   "ü1ú",
544
   "ü1à",
545
   "ü1è",
546
   "ü1ò",
547
   -- We consider here i and u as semiconsonants
548
   "a1i2a",
549
   "a1i2e",
550
   "a1i2o",
551
   "a1i2u",
552
   "a1u2a",
553
   "a1u2e",
554
   "a1u2i",
555
   "a1u2o",
556
   "a1u2u",
557
   "e1i2a",
558
   "e1i2e",
559
   "e1i2o",
560
   "e1i2u",
561
   "e1u2a",
562
   "e1u2e",
563
   "e1u2i",
564
   "e1u2o",
565
   "e1u2u",
566
   "i1i2a",
567
   "i1i2e",
568
   "i1i2o",
569
   "i1i2u",
570
   "i1u2a",
571
   "i1u2e",
572
   "i1u2i",
573
   "i1u2o",
574
   "i1u2u",
575
   "o1i2a",
576
   "o1i2e",
577
   "o1i2o",
578
   "o1i2u",
579
   "o1u2a",
580
   "o1u2e",
581
   "o1u2o",
582
   "o1u2i",
583
   "o1u2u",
584
   "u1i2a",
585
   "u1i2e",
586
   "u1i2o",
587
   "u1i2u",
588
   "u1u2a",
589
   "u1u2e",
590
   "u1u2i",
591
   "u1u2o",
592
   "u1u2u",
593
   "a1i2é",
594
   "a1i2í",
595
   "a1i2ó",
596
   "a1i2ú",
597
   "a1i2à",
598
   "a1i2è",
599
   "a1i2ò",
600
   "a1u2é",
601
   "a1u2í",
602
   "a1u2ó",
603
   "a1u2ú",
604
   "a1u2à",
605
   "a1u2è",
606
   "a1u2ò",
607
   "e1i2é",
608
   "e1i2í",
609
   "e1i2ó",
610
   "e1i2ú",
611
   "e1i2à",
612
   "e1i2è",
613
   "e1i2ò",
614
   "e1u2é",
615
   "e1u2í",
616
   "e1u2ó",
617
   "e1u2ú",
618
   "e1u2à",
619
   "e1u2è",
620
   "e1u2ò",
621
   "i1i2é",
622
   "i1i2í",
623
   "i1i2ó",
624
   "i1i2ú",
625
   "i1i2à",
626
   "i1i2è",
627
   "i1i2ò",
628
   "i1u2é",
629
   "i1u2í",
630
   "i1u2ó",
631
   "i1u2ú",
632
   "i1u2à",
633
   "i1u2è",
634
   "i1u2ò",
635
   "o1i2é",
636
   "o1i2í",
637
   "o1i2ó",
638
   "o1i2ú",
639
   "o1i2à",
640
   "o1i2è",
641
   "o1i2ò",
642
   "o1u2é",
643
   "o1u2í",
644
   "o1u2ó",
645
   "o1u2ú",
646
   "o1u2à",
647
   "o1u2è",
648
   "o1u2ò",
649
   "u1i2é",
650
   "u1i2í",
651
   "u1i2ó",
652
   "u1i2ú",
653
   "u1i2à",
654
   "u1i2è",
655
   "u1i2ò",
656
   "u1u2é",
657
   "u1u2í",
658
   "u1u2ó",
659
   "u1u2ú",
660
   "u1u2à",
661
   "u1u2è",
662
   "u1u2ò",
663
   "é1i2a",
664
   "é1i2e",
665
   "é1i2o",
666
   "é1i2u",
667
   "é1u2a",
668
   "é1u2e",
669
   "é1u2o",
670
   "é1u2i",
671
   "é1u2u",
672
   "í1i2a",
673
   "í1i2e",
674
   "í1i2o",
675
   "í1i2u",
676
   "í1u2a",
677
   "í1u2e",
678
   "í1u2o",
679
   "í1u2i",
680
   "í1u2u",
681
   "ó1i2a",
682
   "ó1i2e",
683
   "ó1i2o",
684
   "ó1i2u",
685
   "ó1u2a",
686
   "ó1u2e",
687
   "ó1u2o",
688
   "ó1u2i",
689
   "ó1u2u",
690
   "ú1i2a",
691
   "ú1i2e",
692
   "ú1i2o",
693
   "ú1i2u",
694
   "ú1u2a",
695
   "ú1u2e",
696
   "ú1u2o",
697
   "ú1u2i",
698
   "ú1u2u",
699
   "à1i2a",
700
   "à1i2e",
701
   "à1i2o",
702
   "à1i2u",
703
   "à1u2a",
704
   "à1u2e",
705
   "à1u2o",
706
   "à1u2i",
707
   "à1u2u",
708
   "è1i2a",
709
   "è1i2e",
710
   "è1i2o",
711
   "è1i2u",
712
   "è1u2a",
713
   "è1u2e",
714
   "è1u2o",
715
   "è1u2i",
716
   "è1u2u",
717
   "ò1i2a",
718
   "ò1i2e",
719
   "ò1i2o",
720
   "ò1i2u",
721
   "ò1u2a",
722
   "ò1u2e",
723
   "ò1u2o",
724
   "ò1u2i",
725
   "ò1u2u",
726
   "ï1i2a",
727
   "ï1i2e",
728
   "ï1i2o",
729
   "ï1i2é",
730
   "ï1i2í",
731
   "ï1i2ó",
732
   "ï1i2ú",
733
   "ï1i2à",
734
   "ï1i2è",
735
   "ï1i2ò",
736
   "ï1i2u",
737
   "ï1u2a",
738
   "ï1u2e",
739
   "ï1u2o",
740
   "ï1u2é",
741
   "ï1u2í",
742
   "ï1u2ó",
743
   "ï1u2ú",
744
   "ï1u2à",
745
   "ï1u2è",
746
   "ï1u2ò",
747
   "ï1u2i",
748
   "ï1u2u",
749
   "ü1i2a",
750
   "ü1i2e",
751
   "ü1i2o",
752
   "ü1i2é",
753
   "ü1i2í",
754
   "ü1i2ó",
755
   "ü1i2ú",
756
   "ü1i2à",
757
   "ü1i2è",
758
   "ü1i2ò",
759
   "ü1i2u",
760
   "ü1u2a",
761
   "ü1u2e",
762
   "ü1u2o",
763
   "ü1u2é",
764
   "ü1u2í",
765
   "ü1u2ó",
766
   "ü1u2ú",
767
   "ü1u2à",
768
   "ü1u2è",
769
   "ü1u2ò",
770
   "ü1u2i",
771
   "ü1u2u",
772
   -- Semiconsonants at the beginning of word
773
   ".hi2a",
774
   ".hi2e",
775
   ".hi2o",
776
   ".hi2u",
777
   ".hu2a",
778
   ".hu2e",
779
   ".hu2i",
780
   ".hu2o",
781
   ".i2è",
782
   ".i2ò",
783
   ".u2è",
784
   ".u2ò",
785
   ".hi2é",
786
   ".hi2ó",
787
   ".hi2ú",
788
   ".hi2à",
789
   ".hi2è",
790
   ".hi2ò",
791
   ".hu2é",
792
   ".hu2í",
793
   ".hu2ó",
794
   ".hu2à",
795
   ".hu2è",
796
   ".hu2ò",
797
   -- And now the crescent diphtongs
798
   "gu2a",
799
   "gu2e",
800
   "gu2i",
801
   "gu2o",
802
   "qu2a",
803
   "qu2e",
804
   "qu2i",
805
   "qu2o",
806
   "gu2é",
807
   "gu2í",
808
   "gu2ó",
809
   "gu2à",
810
   "gu2è",
811
   "gu2ò",
812
   "qu2é",
813
   "qu2í",
814
   "qu2ó",
815
   "qu2à",
816
   "qu2è",
817
   "qu2ò",
818
   "gü2e",
819
   "gü2é",
820
   "gü2í",
821
   "gü2è",
822
   "gü2i",
823
   "qü2e",
824
   "qü2é",
825
   "qü2í",
826
   "qü2è",
827
   "qü2i",
828
   -- We add here some exceptions to the rules for diaeresis
829
   "a1isme.",
830
   "e1isme.",
831
   "i1isme.",
832
   "o1isme.",
833
   "u1isme.",
834
   "a1ista.",
835
   "e1ista.",
836
   "i1ista.",
837
   "o1ista.",
838
   "u1ista.",
839
   "a1um.",
840
   "e1um.",
841
   "i1um.",
842
   "o1um.",
843
   "u1um.",
844
   -- disallow hyphenation on possible prefixes
845
   ".antihi2",
846
   ".be2n",
847
   ".be2s",
848
   ".bi2s",
849
   ".ca2p",
850
   ".ce2l",
851
   ".cla2r",
852
   ".co2ll",
853
   ".co2n",
854
   ".co2r",
855
   ".de2s",
856
   ".di2s",
857
   ".en3a",
858
   ".hipe2r",
859
   ".hiperm2n",
860
   ".in3ac",
861
   ".in3ad",
862
   ".in3ap",
863
   ".in3es",
864
   ".in3o",
865
   ".inte2r",
866
   ".ma2l",
867
   ".mal1t2hus",
868
   ".pa2n",
869
   ".pe2r",
870
   ".pe3ri",
871
   ".pos2t",
872
   ".psa2l",
873
   ".rebe2s",
874
   ".re2d",
875
   ".su2b",
876
   ".sub3o",
877
   ".subde2s",
878
   ".supe2r",
879
   ".tran2s",
880
   -- Avoid hyphenation on some intra-word groups
881
   "g2no",
882
   "p2si",
883
   "p2se",
884
   "p2neu",
885
   "g2nò",
886
   "p2sí",
887
   -- Avoid wrong hyphenation on some foreign-origin words
888
   ".ch2",
889
   ".th2",
890
   "ein1s2tein",
891
   "ru1t2herford",
892
   "ni2etz1sc2he",
893
   -- Add some good patterns found by patgen
894
   "3exp",
895
   "3nef",
896
   "3nei",
897
   "3pr",
898
   "3ser",
899
   "a3ne",
900
   "a3ri",
901
   "bi3se",
902
   "des3ag",
903
   "des3ar",
904
   "des3av",
905
   "des3enc",
906
   "e3ism",
907
   "e3le",
908
   "e3rio",
909
   "e3ris",
910
   "es3aco",
911
   "es3af",
912
   "es3ap",
913
   "es3arr",
914
   "es3as",
915
   "es3int",
916
   "ig3n",
917
   "in3ex",
918
   "n3si",
919
   "o3ro",
920
   "qui3e",
921
   "s3emp",
922
   "s3esp",
923
   "sub3a",
924
   "ui3et",
925
   "o3gnò",
926
}
927

UNCOV
928
SILE.hyphenator.languages["ca"].exceptions = {
×
929
   "cu-rie",
930
   "cu-ries",
931
   "gei-sha",
932
   "gei-shes",
933
   "goua-che",
934
   "goua-ches",
935
   "hip-py",
936
   "hip-pies",
937
   "hob-by",
938
   "hob-bies",
939
   "jeep",
940
   "jeeps",
941
   "joule",
942
   "joules",
943
   "klee-nex",
944
   "klee-nexs",
945
   "lar-ghet-ti",
946
   "lar-ghet-to",
947
   "lied",
948
   "lieder",
949
   "nos-al-tres",
950
   "ro-yal-ties",
951
   "ro-yal-ty",
952
   "vos-al-tres",
953
   "whis-ky",
954
   "whis-kies",
955
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc