Considerations for Compiling and Rendering the Asset Model

Compile an asset in the context of a channel to return a flattened string of the asset content. You can use two compiling types:

  • standard compiling
  • rendering

Rendering accounts for superContent and design. Use rendering only for user representation and manipulation of content, as opposed to sending and publishing content.

Standard Compiling

  • IF an asset contains content:

    • FOR EACH placeholder block or slot in the content:

      • REPLACE the placeholder with the compiled string from the block or slot
    • RETURN replaced content

  • ELSE:

    • IF an asset contains views:

      • IF an asset contains a view for the specified channel:

        • RETURN the compiled channel view
      • ELSE IF an asset contains an HTML view:

        • RETURN the compiled HTML view
      • ELSE:

        • RETURN empty string

Rendering

  • IF an asset contains content, design, or superContent:

    • IF an asset contains superContent and superContent is not empty:

      • usedContent = superContent
    • ELSE IF an asset contains content and content is not empty:

      • usedContent = content
    • ELSE IF an asset contains design and design is not empty:

      • usedContent = design
    • ELSE:

      • RETURN empty string
    • FOR EACH placeholder block or slot in the content:

      • REPLACE the placeholder with the rendered string from the block or slot
    • RETURN replaced content

  • ELSE:

    • IF an asset contains views:

      • IF an asset contains a view for the specified channel:

        • RETURN the rendered channel view
      • ELSE IF there is an HTML view:

        • RETURN the rendered HTML view
      • ELSE:

        • RETURN empty string

Sample Full Compiler in JavaScript