A Document is the primary data structure for knowledge in the Hypermedia ecosystem. Every Document is a @ChangeResource, so it is modeled with Refs and Change blobs.
The main building block for knowledge in the Hypermedia network is the Document.
Each Document is identified by the Site Id + Path
Content
The content of the document is a hierarchy of Blocks. Each Block Node contains one block and any number of children blocks.
Block Types
Paragraph
Heading
Code
Math
Image
Video
File
Button
Embed
WebEmbed
Query
Experimental Block Types
Nostr
Note: Some Block types do not properly support children. TODO: research and explain this better
Metadata
A document has the following metadata fields to describe it. They are all optional but it is recommended to always have a name
name
The title of the Document. For Home Documents, this is the title of the Site
icon
The IPFS url for the icon associated with this Document. For Home Documents, this is the icon (or favicon) for the Site.
cover
The IPFS url for the cover image. When present, displayed full-width at the top of the document.
siteUrl
For Home Documents, contains the https URL where the Site is published on the web
displayPublishTime
TODO
showOutline
TODO
showActivity
TODO
contentWidth
TODO
theme
TODO
Experimental Metadata
seedExperimentalLogo
For Home Documents, contains the IPFS url for the logo to be used in the header, instead of the name+logo
Deprecated Metadata
Some fields are no longer in use but they may appear in older Documents. They can be safely ignored.
layout
seedExperimentalHomeOrder