pdftract/crates/pdftract-core/src
jedarden 01d7442c0f fix(correction): add Ligature::Ff to skip pattern and improve mojibake tests
- Add Ligature::Ff to the skip_next pattern in repair_split_ligatures
- Update mojibake test patterns to use readable Unicode escape sequences
- Fix NBSP test to use correct UTF-8 byte sequences
- Simplify multiple mojibake test to focus on accented character repair
- Update ligature test with more realistic scenario and complete glyph sequence

This fixes the handling of 'ff' ligatures that appear as f<U+FFFD>f in
split ligature scenarios, ensuring the second 'f' is properly skipped
during reconstruction.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 10:34:06 -04:00
..
annotation feat(pdftract-91e1i): HTTP fetch sequence implementation 2026-05-28 13:17:00 -04:00
attachment fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
cache fix(pdftract-2uk9z): wrap native module results in typed Python objects 2026-05-28 21:18:38 -04:00
cmap feat(pdftract-19oy): codespace range parser + multi-byte tokenizer 2026-05-28 12:26:25 -04:00
decoder feat(pdftract-36glh): implement JPXDecode passthrough with JP2 validation 2026-05-28 05:11:19 -04:00
encryption fix(pdftract-2uk9z): wrap native module results in typed Python objects 2026-05-28 21:18:38 -04:00
fingerprint fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
font wip: AcroForm improvements, debug tooling, test corpus, and fixture updates 2026-05-30 09:48:14 -04:00
forms fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
glyph docs(pdftract-3eohy): add rustdoc examples to Glyph and Span types 2026-06-01 01:16:24 -04:00
layout fix(correction): add Ligature::Ff to skip pattern and improve mojibake tests 2026-06-08 10:34:06 -04:00
ocr/preprocessing feat(pdftract-37j8q): implement Sauvola adaptive thresholding 2026-06-01 01:19:14 -04:00
output fix(pdftract-39gey): fix indent trigger to not split drop-cap paragraphs 2026-06-07 13:43:19 -04:00
parser docs(pdftract-4m8u): Add verification note for Phase 1.3 xref implementation 2026-06-02 20:20:29 -04:00
profiles docs(pdftract-3eohy): add rustdoc examples to Glyph and Span types 2026-06-01 01:16:24 -04:00
receipts fix(pdftract-4pnmd): build.rs doc comment format string parsing 2026-05-28 14:36:45 -04:00
render feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
schema fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
signature feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
source fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
span feat(pdftract-4k1x4): complete Phase 4 Text Assembly and Layout 2026-06-08 09:09:37 -04:00
table fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
threads feat(pdftract-4li3d): implement security constraints for serve mode 2026-05-26 18:47:51 -04:00
atomic_file_writer.rs feat(pdftract-68wfa): implement AtomicFileWriter for atomic file writes 2026-05-24 13:02:37 -04:00
audit.rs fix(pyo3): correct extract_text_fn call in extract_markdown stub 2026-05-28 20:28:25 -04:00
classify.rs fix(pdftract-4fa9): Remove duplicate classify_page function definition in classify.rs 2026-06-02 18:41:48 -04:00
confidence.rs fix(pdftract-2uk9z): wrap native module results in typed Python objects 2026-05-28 21:18:38 -04:00
conformance.rs fix(pdftract-25igv): fix emit! macro usage in codespace parser 2026-05-28 07:29:33 -04:00
content_stream.rs fix(pdftract-63ka2): AES-128 test buffer allocation for PKCS#7 padding 2026-05-28 01:30:33 -04:00
detection.rs feat(pdftract-25br8): add JS/XFA/conformance detection tests and diagnostic emission 2026-05-28 06:43:53 -04:00
diagnostics.rs fix(pdftract-4pnmd): build.rs doc comment format string parsing 2026-05-28 14:36:45 -04:00
document.rs fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
dpi.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
extract.rs feat(pdftract-4k1x4): complete Phase 4 Text Assembly and Layout 2026-06-08 09:09:37 -04:00
graphics_state.rs fix(pdftract-2uk9z): wrap native module results in typed Python objects 2026-05-28 21:18:38 -04:00
hybrid.rs feat(pdftract-1t5sj): implement book_chapter profile with fixtures and tests 2026-05-27 22:30:09 -04:00
javascript.rs feat(pdftract-4li3d): implement security constraints for serve mode 2026-05-26 18:47:51 -04:00
lib.rs feat(pdftract-4k1x4): complete Phase 4 Text Assembly and Layout 2026-06-08 09:09:37 -04:00
log_policy.rs fix(pyo3): correct extract_text_fn call in extract_markdown stub 2026-05-28 20:28:25 -04:00
markdown.rs feat(pdftract-2m3gl): implement PHP SDK with Packagist publishing 2026-06-01 10:27:03 -04:00
ocr.rs feat(pdftract-6dki1): implement histogram stretch contrast normalization 2026-05-24 10:30:20 -04:00
options.rs feat(bf-3fka4): scaffold pdftract-inspector-ui crate 2026-06-01 09:43:49 -04:00
page_class.rs fix(pdftract-tuky): fix color clamping test and verify Phase 3.1 coordinator 2026-05-26 16:36:01 -04:00
pages.rs fix(pdftract-63ka2): AES-128 test buffer allocation for PKCS#7 padding 2026-05-28 01:30:33 -04:00
preprocess.rs feat(pdftract-37j8q): implement Sauvola adaptive thresholding 2026-06-01 01:19:14 -04:00
remote.rs fix(pdftract-4pnmd): build.rs doc comment format string parsing 2026-05-28 14:36:45 -04:00
render.rs feat(pdftract-axcri): record inline images as ImageXObject entries 2026-05-24 07:41:50 -04:00
sdk.rs fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00
semaphore.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
span_flags.rs feat(pdftract-cbrbg): implement span flag detector for Phase 4.1 2026-05-24 07:28:25 -04:00
text.rs feat(pdftract-4k1x4): complete Phase 4 Text Assembly and Layout 2026-06-08 09:09:37 -04:00
url_validation.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
word_boundary.rs fix(bf-4mkhv): clean up unused imports in hash.rs 2026-06-01 09:43:48 -04:00