desirae.js/DESI.md

2.3 KiB

Data

Every template gets an object with the exact same structure - whether it's a template or a widget or a page or a post.

Here we only document Desirae's default behavior, but there are many objects added for compatibility with Ruhoh that are not documented.

desi = {}

desi

  • config - literally config.yml, parsed
  • site - literally site.yml, parsed
  • authors - literally the authors from authors/*.yml, parsed
  • author - the primary author of the site
  • env - urls and paths for this build (be it production, development, staging, etc)
  • content - pre-rendered content (i.e. content rendered into the post layout rendered into the default layout)
  • collection - config related to this collection
  • entity - the page, post, article, etc that is the focus of the present template process
  • themes - all themes
  • theme - the default theme
  • layout - the selected layout for this theme
  • satch - the selected swatch for this theme
  • categories - all categories
  • tags - all tags
  • styles - ??? goes into the final template in the head
  • scripts - ?? that goes into the final template just before the body close

desi.entity

stuff

  • uuid
  • title
  • disqus_url
  • disqus_identifier

more stuff

  • type - post, page, etc
  • authors - literally the relevant authors from authors/*.yml, parsed
  • author - the primary author of this entity
  • theme - null or a non-default theme
  • layout - null or a non-default layout for this theme
  • swatch - null or a non-default swatch for this theme
  • categories: [] // all categories in all collections
  • tags: [] // all categories in all collections
  • production_canonical_url the PRODUCTION canonical_url for this entity
  • production_url the PRODUCTION url for this entity
  • production_path the PRODUCTION path for this entity
  • url the full url in the current environment (might be production, development, etc)
  • path the non-host part (i.e. /compiled_dev/articles/my-first-post.html)
  • previous the previous entity in this collection
  • next the next entitiy in this collection

NOTE: Plugins, widgets, etc SHOULD NOT modify config, site, authors, author, or env.

desi.posts

  , posts: { collated: desi.collated }

desi.config

desi.site

desi.env