Overview of Orchid's directory structure
A typical Orchid site looks like this:
. / (resources root) ├── homepage.md ├── config.yml ├── config/ ├── data.yml ├── data/ ├── assets/ | ├── css/ | ├── js/ | └── media/ └── templates/ ├── layouts/ ├── pages/ ├── components/ ├── tags/ └── includes/
None of the files listed above are required. Orchid will work just fine if you choose to omit any (or all) of them.
The following is a high-level overview of the main directories and important files you'll need to know to customize your site.
config.yml file is the main configuration for everything. In here you can configure plugins, themes, and certain
core Orchid functionality. It doesn't have to be YAML either, can be set up in any format you choose, such as TOML or
JSON. You can break up large
config.yml files by moving parts of it into individual files in
config/. Learn more
about this here.
data/ files will be loaded in exactly the same way as
config.yml, and then made available in
your templates through the
This file is the landing page for your entire site. If it is not present, Orchid will create a basic landing page for you.
Put all the CSS, JS, images, or other assets you need here. Typically, CSS and SCSS files go in
assets/css and JS
files go in
assets/js, and these will only be coped to the built site if you actually use them. All files in
assets/media are copied over by default, but you can set additional directories to always copy over if you need.
Unlike many static site generators, Orchid distributes its themes as plugins which fully encapsulate their templates and
assets. This means you do not need to copy a bunch of files into your project to use a theme. However, you may want to
customize of the default templates. Any templates in the
templates/ directory will override those defined by the theme
or other plugins.
Content in Orchid comes from plugins, such as OrchidPages, OrchidPosts, or OrchidWiki. Each plugin is free to use whatever directory structure it wants, so make sure to check out the documentation for your plugins to know where they get their content from.