Normative notes on how OneDocument behaves, one page per area. The code's XML documentation states the details of each type; these pages state the rules, the sources they come from and the deviations. Start with contracts.md and defects.md.
Foundations
| Note | What it covers |
| contracts.md | Shared contracts: byte sources, limits, defects and exceptions, the format registry, the part model, the untouched-part round-trip rule |
| defects.md | The defect catalogue: every layer.problem code, what it means and where it is located |
| packaging.md | OPC packages, Flat OPC and compound files under every format |
| markup.md | The XML tokenizer, writer, lazy markup tree and reader |
| platforms.md | NativeAOT, trimming and browser WebAssembly: what is checked and the known browser gaps |
| encryption.md | Opening password-protected files; the supported schemes and what is written |
| protection.md | Editing restrictions and their passwords for the three kinds |
| ole.md | OLE property sets and embedded objects |
| vba.md | VBA projects as data: read, list, extract, remove; never run |
| officeart.md | The OfficeArt reader the binary formats share |
| number-formats.md | Excel's number-format language and date serials, as a shared service |
| text-extraction.md | Text extraction from OOXML packages |
| accessibility.md | Accessibility checking against Office's published rules |
Word-processing documents
| Note | What it covers |
| docx-styles-numbering.md | Style resolution and list labels |
| authoring.md | Building content with the hub: styles by name, runs, links, pictures, tables, ranges, slides; sanitising in memory |
| docx-tables-sections.md | Tables, sections, headers and footers |
| docx-fields-notes-comments.md | Fields, footnotes and endnotes, comments |
| docx-content-controls.md | Content controls and custom XML binding |
| docx-stories-properties.md | Text boxes, stories, list labels, document properties |
| revisions.md | Tracked changes: reading, authoring, accepting and rejecting |
| doc.md | Reading Word 97 to 2013, Word 6/95 and fast-saved binary files |
| rtf.md | RTF 1.9.1 read and write, the group tree and the conversion |
| xml-2003.md | Word 2003 XML and Excel 2003 XML (read-only conversion) |
| html.md | HTML import (sanitised) and export |
| markdown.md | CommonMark and GFM import and export |
| odf.md | OpenDocument package layer and text-document conversions |
| odp.md | OpenDocument presentations (ODP, OTP, FODP) read and write |
Workbooks
| Note | What it covers |
| spreadsheets.md | The workbook hub and the cell store |
| spreadsheets-styles.md | Styles, tables, conditional formatting, validation, names |
| spreadsheets-streaming.md | Forward-only row and cell cursors |
| spreadsheets-poco.md | Spreadsheet.Read<T> and Write<T>: rows of plain objects |
| spreadsheets-calc.md | Recalculation: dependency graph, levels, circular references, iteration, data tables, Goal Seek, external links |
| spreadsheets-pivots.md | Pivot caches and tables, refresh |
| calc.md | The formula tree, values, evaluator and function registry |
| calc-functions.md | The function families and their documented behaviour |
| csv.md | CSV and TSV reader, writer and loss report |
| xlsb.md | Binary workbooks |
| xls.md | Legacy Excel workbooks, BIFF2 to BIFF8 read, BIFF8 write |
Presentations
| Note | What it covers |
| presentations.md | The presentation hub, inheritance, editing |
| ppt.md | Reading PowerPoint 97-2003 files |
Templating and operations
| Note | What it covers |
| templating.md | The template syntax, extensions to formula syntax, data sources, the binder contract |
| templating-docx.md | The document template binder |
| templating-xlsx.md | The workbook template binder |
| templating-pptx.md | The presentation template binder |
| mail-merge.md | Word mail merge |
| operations-merge.md | Merge, append, split and persisted field update |
| operations-find-replace.md | Find and replace across runs, cells and paragraphs |
| sanitize.md | Inspecting a file for hidden data and personal information, and sanitising it |
| redaction.md | True redaction by match or region, and its verification |
| redaction-review.md | The project's own completeness review of redaction (not an external audit): method, defects found, verdict, open items |
Rendering
| Note | What it covers |
| layout.md | The layout engine and paint contract; PDF and PNG output |
| layout-tables.md | Tables in layout |
| layout-floats.md | Floating objects and text wrap |
| layout-fields.md | Fields that depend on pages; table of contents and indexes |
| spreadsheet-rendering.md | Printing workbooks: pages, cell text, objects |
| presentation-rendering.md | Slides to PDF and PNG |
| rendering-export.md | Pages as PNG, JPEG, TIFF, WebP and SVG: page ranges, size, the SVG writer and its checks |
| drawingml-rendering.md | Shapes, pictures, groups and effects |
| charts.md | Chart reading, layout and painting |
| smartart.md | SmartArt: stored drawings and the layout engine |
| math-layout.md | Equations (Office Math) |
| metafiles.md | Drawing embedded EMF, EMF+ and WMF pictures |
Coming from another library
migration/ maps the common tasks of seven libraries to OneDocument.