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