Recursive AI

OneDocument notes

All onedocument docs

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

NoteWhat it covers
contracts.mdShared contracts: byte sources, limits, defects and exceptions, the format registry, the part model, the untouched-part round-trip rule
defects.mdThe defect catalogue: every layer.problem code, what it means and where it is located
packaging.mdOPC packages, Flat OPC and compound files under every format
markup.mdThe XML tokenizer, writer, lazy markup tree and reader
platforms.mdNativeAOT, trimming and browser WebAssembly: what is checked and the known browser gaps
encryption.mdOpening password-protected files; the supported schemes and what is written
protection.mdEditing restrictions and their passwords for the three kinds
ole.mdOLE property sets and embedded objects
vba.mdVBA projects as data: read, list, extract, remove; never run
officeart.mdThe OfficeArt reader the binary formats share
number-formats.mdExcel's number-format language and date serials, as a shared service
text-extraction.mdText extraction from OOXML packages
accessibility.mdAccessibility checking against Office's published rules

Word-processing documents

NoteWhat it covers
docx-styles-numbering.mdStyle resolution and list labels
authoring.mdBuilding content with the hub: styles by name, runs, links, pictures, tables, ranges, slides; sanitising in memory
docx-tables-sections.mdTables, sections, headers and footers
docx-fields-notes-comments.mdFields, footnotes and endnotes, comments
docx-content-controls.mdContent controls and custom XML binding
docx-stories-properties.mdText boxes, stories, list labels, document properties
revisions.mdTracked changes: reading, authoring, accepting and rejecting
doc.mdReading Word 97 to 2013, Word 6/95 and fast-saved binary files
rtf.mdRTF 1.9.1 read and write, the group tree and the conversion
xml-2003.mdWord 2003 XML and Excel 2003 XML (read-only conversion)
html.mdHTML import (sanitised) and export
markdown.mdCommonMark and GFM import and export
odf.mdOpenDocument package layer and text-document conversions
odp.mdOpenDocument presentations (ODP, OTP, FODP) read and write

Workbooks

NoteWhat it covers
spreadsheets.mdThe workbook hub and the cell store
spreadsheets-styles.mdStyles, tables, conditional formatting, validation, names
spreadsheets-streaming.mdForward-only row and cell cursors
spreadsheets-poco.mdSpreadsheet.Read<T> and Write<T>: rows of plain objects
spreadsheets-calc.mdRecalculation: dependency graph, levels, circular references, iteration, data tables, Goal Seek, external links
spreadsheets-pivots.mdPivot caches and tables, refresh
calc.mdThe formula tree, values, evaluator and function registry
calc-functions.mdThe function families and their documented behaviour
csv.mdCSV and TSV reader, writer and loss report
xlsb.mdBinary workbooks
xls.mdLegacy Excel workbooks, BIFF2 to BIFF8 read, BIFF8 write

Presentations

NoteWhat it covers
presentations.mdThe presentation hub, inheritance, editing
ppt.mdReading PowerPoint 97-2003 files

Templating and operations

NoteWhat it covers
templating.mdThe template syntax, extensions to formula syntax, data sources, the binder contract
templating-docx.mdThe document template binder
templating-xlsx.mdThe workbook template binder
templating-pptx.mdThe presentation template binder
mail-merge.mdWord mail merge
operations-merge.mdMerge, append, split and persisted field update
operations-find-replace.mdFind and replace across runs, cells and paragraphs
sanitize.mdInspecting a file for hidden data and personal information, and sanitising it
redaction.mdTrue redaction by match or region, and its verification
redaction-review.mdThe project's own completeness review of redaction (not an external audit): method, defects found, verdict, open items

Rendering

NoteWhat it covers
layout.mdThe layout engine and paint contract; PDF and PNG output
layout-tables.mdTables in layout
layout-floats.mdFloating objects and text wrap
layout-fields.mdFields that depend on pages; table of contents and indexes
spreadsheet-rendering.mdPrinting workbooks: pages, cell text, objects
presentation-rendering.mdSlides to PDF and PNG
rendering-export.mdPages as PNG, JPEG, TIFF, WebP and SVG: page ranges, size, the SVG writer and its checks
drawingml-rendering.mdShapes, pictures, groups and effects
charts.mdChart reading, layout and painting
smartart.mdSmartArt: stored drawings and the layout engine
math-layout.mdEquations (Office Math)
metafiles.mdDrawing embedded EMF, EMF+ and WMF pictures

Coming from another library

migration/ maps the common tasks of seven libraries to OneDocument.