(self)
| 194 | json.dump(meta, f, ensure_ascii=False, indent=2) |
| 195 | |
| 196 | def _load_workspace(self): |
| 197 | meta = self._read_meta() |
| 198 | if meta is None: |
| 199 | meta = self._rebuild_meta() |
| 200 | if meta: |
| 201 | print(f"Loaded {len(meta)} document(s) from workspace (legacy mode).") |
| 202 | for doc_id, entry in meta.items(): |
| 203 | doc = dict(entry, id=doc_id) |
| 204 | if doc.get('path') and not os.path.isabs(doc['path']): |
| 205 | doc['path'] = str((self.workspace / doc['path']).resolve()) |
| 206 | self.documents[doc_id] = doc |
| 207 | |
| 208 | def _ensure_doc_loaded(self, doc_id: str): |
| 209 | """Load full document JSON on demand (structure, pages, etc.).""" |
no test coverage detected