docling-project / docling-project/docling-parse

Threaded parser and renderer lack the document metadata accessors (ToC, annotations, XMP)

Open
#303 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
333
Forks
80
Avg merge
1d 14h
Merged PRs (30d)
10

Description

### Summary

`docling_parser` exposes three document-level metadata accessors that neither `docling_threaded_parser` nor `docling_threaded_renderer` provides:

| Method | `docling_parser` | threaded parser | threaded renderer |
| --- | --- | --- | --- |
| `number_of_pages(key)` | ✅ `app/pybind_parse.cpp:824` | ✅ `:1032` | ✅ `:1245` |
| `get_annotations(key)` | ✅ `:838` | ❌ | ❌ |
| `get_table_of_contents(key)` | ✅ `:852` | ❌ | ❌ |
| `get_meta_xml(key)` | ✅ `:866` | ❌ | ❌ |

The threaded classes expose only load / unload / page counts / task consumption. Once a document is handed to the threaded parser there is no way to read its outline, annotations or XMP metadata.

Contributor guide

Open the contributing guide

Research direction

Start in app/pybind_parse.cpp by comparing the existing get_annotations, get_table_of_contents, and get_meta_xml bindings with the threaded parser and renderer sections. Add matching document-level accessors to both threaded classes, and consider the work done when all three metadata methods are available alongside their existing load, unload, page-count, and task-consumption APIs.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.