{
"$type": "site.standard.document",
"canonicalUrl": "https://standard.site/docs/lexicons/document",
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihtwhkj4tgrulsbgv5nb53z3hiatfeat4asm6uv4y6ymqmqxfmvi4"
},
"mimeType": "image/png",
"size": 110855
},
"description": "Schema reference for documents, used to provide metadata for documents published on the web.",
"path": "/docs/lexicons/document",
"publishedAt": "2026-02-10T00:00:00.000Z",
"site": "at://did:plc:re3ebnp5v7ffagz6rb6xfei4/site.standard.publication/3me5vykp6lf2y",
"textContent": "import { Table } from '@/app/components/docs'\n\nDocument Lexicon\n\nThe site.standard.document lexicon provides metadata for documents published on the web.\n\nOverview\n\nDocuments may be standalone or associated with a publication. This lexicon can be used to store a document's content and its associated metadata.\n\nSchema\n\nRequired Properties\n\n<Table\n headers={['Property', 'Type', 'Description']}\n rows={[\n ['site', 'string', <>Points to a publication record <code>at://</code> or a publication url <code>https://</code> for loose documents. Avoid trailing slashes.</>],\n ['title', 'string', <>Title of the document. <code>maxLength: 5000</code> <code>maxGraphemes: 500</code></>],\n ['publishedAt', 'datetime', 'Timestamp of the documents publish time.'],\n ]}\n/>\n\nOptional Properties\n\n<Table\n headers={['Property', 'Type', 'Description']}\n rows={[\n ['path', 'string', <>Combine with <code>site</code> or publication <code>url</code> to construct a canonical URL to the document. A slash should be included at the beginning of this value.</>],\n ['description', 'string', <>A brief description or excerpt from the document. <code>maxLength: 30000</code> <code>maxGraphemes: 3000</code></>],\n ['coverImage', 'blob', 'Image to used for thumbnail or cover image. Less than 1MB is size.'],\n ['content', 'union', <>Open union used to define the record's content. Each entry must specify a <code>$type</code></>],\n ['textContent', 'string', 'Plaintext representation of the documents contents. Should not contain markdown or other formatting.'],\n ['bskyPostRef', 'ref', 'Strong reference to a Bluesky post. Useful to keep track of comments off-platform.'],\n ['tags', 'array', <>Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags. <code>maxLength: 1280</code> <code>maxGraphemes: 128</code></>],\n ['updatedAt', 'datetime', 'Timestamp of the documents last edit.'],\n ]}\n/>\n\nExample\n\nContent Format\n\nThe content property is an open union, allowing for extensibility. Each entry must specify a $type and may be extended with other lexicons to support additional content formats like Markdown, blocks, or other rich text.\n\nView the Lexicon\n\n- View full lexicon schema\n- Example record\n\nBest Practices\n\n- While we encourage avoid trailing slashes, some may not implement this in practice. If you are validating records, you should trim trailing slashes for site in your codebase.\n\nRelated\n\n- Publication lexicon - Collections of documents\n- Verification - Link documents to web pages\n- Quick Start - Implementation guide",
"title": "Document Lexicon"
}