A blog platform written in JavaScript for developers, but with normal people in mind.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.5 KiB

4 years ago
# 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.
4 years ago
## config.yml vs site.yml
site.yml is for anything that changes the content of the site (navigation, title, analytic and ad ids, default author, etc)
config.yml is for anything that doesn't change the site (from where to read directories, which order to load plugins)
```
desi = {}
```
4 years ago
# 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
4 years ago
- `uuid`
- `title`
- `disqus_url`
- `disqus_identifier`
more stuff
4 years ago
- `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.
4 years ago
# desi.posts
, posts: { collated: desi.collated }
4 years ago
# desi.config
4 years ago
# desi.site
4 years ago
# desi.env