Files and spreadsheets

Upload a document, a deck, a spreadsheet or a PDF and it becomes a page — what each format turns into, what is left out, and what to do when it fails.

Last updated 2026-10-10

A file uploaded to Sources is read by Rindo’s own rule-based extraction — no AI; the structure is inferred by fixed rules — and becomes a page on the normal revision chain, with the original kept as an attachment. This page says what each format turns into and what is deliberately left out. The overview of pages is on Pages and files.

Upload

Open the project’s Documents, choose Sources at the foot of the tree panel, and Upload file — one file per upload: docx, html, htm, md, txt, xlsx, csv, pptx or pdf. The file joins the Processing strip as Queued, then Extracting, and on success leaves the strip for the Library below it: a document, searchable from that minute, with a download of the original and an Original pane beside the text. It is not yet in the document tree: Promote… moves it in, an ordinary move after which it leaves Sources for good. A spreadsheet’s sheet pages travel with their workbook.

Uploading needs Member; a Viewer sees Sources read-only.

What each format becomes

  • Word (docx) — one page. Pictures come along, placed where they were; the text of a text box follows the paragraph that held it. Headers, footers, comments and equations are dropped; tracked changes are flattened; footnotes become a numbered list at the end of the page, with a marker where each was cited.
  • Markdown (md) and text (txt) — one page. In markdown, a front-matter block is removed. In plain text, blank lines separate paragraphs and short numbered or keyword lines standing alone become headings. A single markdown file cannot bring its images along — zip the folder instead, see Import a folder of markdown.
  • HTML — one page from the text and the structure; scripts and styles are removed, images embedded as data are dropped.
  • CSV — one page. Table rows become one line each, Label: value · Label: value, so each value stays searchable beside its column label; a cell under a blank header is dropped.
  • Excel (xlsx) — one page for the workbook and one page under it per visible sheet with content, named after the sheet; a short first cover sheet becomes the workbook page itself, and a workbook with a single sheet is one page. Each table region, with its own header row, becomes record lines as for CSV; label-and-value layouts collapse to lines; what cannot be told apart flows as text, never dropped. Values only: formulas are never evaluated, and a formula with no cached value reads as empty. Hidden sheets are skipped and named in the extraction report; cell comments become a Comments section at the end of the sheet’s page, as text; pictures follow the sheet’s text, each captioned with the cell it was anchored to.
  • PowerPoint (pptx) — one page per deck, each slide a heading Slide N: title with its text in reading order, indented lines as bullets (not nested), tables, pictures, the text of SmartArt, a summary line for a chart, and the speaker notes as a quote at the end of the slide. Hidden slides are skipped.
  • PDF — one page from the text layer; headings and bullets are recovered where they can be. No images, no OCR. A PDF where fewer than one page in ten carries text — a scan, even with a typed cover page — becomes a placeholder page instead, No text could be extracted, marked notice; what little text it had is not kept.

Long files are cut at a page, row or character cap and the cut is recorded in the report; a cut is not a failure. A file over the ingestion size cap is.

Scanned files

A notice page carries Request conversion: the project’s Converter agent — a project agent you designate under Settings → General — transcribes the original and submits the result as a draft you review and approve. Rindo’s ready-made one is rindo-convert, installed on a runner with your own Anthropic API key; when none is designated, the request is refused and the card says so, with a link to the setting.

Uploading a file again

The match is by the file’s bytes, against the project’s live pages. The same file again lands on the same document: if neither the file nor the page has changed, nothing changes; if the page was edited since, the file’s content is written back as a new revision and your edits stay in History; each re-upload also adds another copy of the original. An edited file is a different file and becomes a new document. To replace a page with a new version of its source, import the new file and have an Admin move the old page to the Trash.

When extraction fails

A failed upload stays in the Processing strip with its reason — an unsupported or mismatched format, an encrypted or corrupt file, nothing to extract, too large, timed out, a storage limit reached, among others. Nothing retries on its own: Re-trigger runs it again, and an Admin can Dismiss the row. Open a failed row to read the extraction report — counts, truncations, hidden sheets, what was skipped — when extraction got far enough to write one. After a success the report is kept on the audit trail and not shown in the app, so a cut or a skipped sheet in a file that succeeded is not visible there.

Limits

A file is refused over the upload limit the page states and when it would pass the project’s storage limit, the rolling 24-hour upload allowance or the project owner’s account total — the message names which. Rindo has no connector that syncs a drive or a wiki, and no MCP tool for ingestion: an assistant’s upload_asset stores a file and returns a link to put in a page; it does not read the file.