When Trio outputs pages to the file system, either to the public or to the release folders, it employs a folder structure and file naming convention that results in clean, user-friendly URLs that are easy to share externally, such as on social media or via email.
For the remainder of this discussion, the folder named target is used to represent both the public and the release folders that Trio writes to. In both instances, Trio employs the same conventions which are explained below.
You can override how Trio outputs your pages to the file system using Permalinks.
For Non Blog Article Pages
File source/fragments/index.md would be written to target/index.html and its URL would be /.
File source/fragments/about.md would be written to target/about/index.html and its URL would be /about/.
File source/fragments/abc/index.md would be written to target/abc/index.html and its URL would be /abc/.
File source/fragments/abc/contact.md would be written to target/abc/contact/index.html and its URL would be /abc/contact/.
As the examples above demonstrate, when Trio creates your non blog-related pages, Trio will create the appropriate parent folders for the page if they don't already exist.
For Blog Article Pages
When naming your blog article, use the form yyyy-mm-dd-articlename.md|.html, where:
- yyyy: is the 4 digit year
- mm: is the 2 digit month
- dd: is the 2 digit day
File source/fragments/articles/2018-11-18-articlename.md would be written to target/2018/11/18/articlename/index.html and its URL would be /2018/11/18/articlename/.
File source/fragments/articles/2018-11-18-articlename.md declares category: abc in its front matter and would be written to target/abc/2018/11/18/articlename/index.html and its URL would be /abc/2018/11/18/articlename/.
As the examples above demonstrate, when Trio creates your blog article pages, Trio will create the appropriate parent folders for the page if they don't already exist.
Fragment file name's that you prepend with an underscore (i.e. "_") marks them as a "work in progress", and will be ignored during a release build of your project. This allows you to develop new pages without impacting your release builds.
For example, during a release build, article `source/fragments/articles/_2019-01-01-articlename.md` would be ignored.