Kriti follows a sane and defined blog structure. Everything revolves around the kriti.blog file. The location of this file dictates where the markdown and other related files are.
Ideal Structure
Where ever you decide to place your new blog content while running kriti new blog, it should have following files and folder bare minimum
sample-blog/
|-- kriti.blog
|-- content/
|---- blog1/
|------ index.md
|------ cover.png
|-- static/
|---- favicon.ico
The best approach would be to keep all the files and folders in one parent folder. In above example everything is kept under the folder
sample-blog.
The kriti.blog file
This file indicates root location of the blog contents. Kriti will look for other content relative to this file. The folders content & static should be present where ever this file is kept.
The content folder
content contains all the blogs to be published. Every blog must be in its own folder. Example
| ...
|-- content/
|-- blog1/
|-- index.md
|-- cover.png
|-- parent1/
|-- child1/
|-- index.md
|-- cover.png
|-- child2/
|-- index.md
|-- cover.png
This structure also dictates the URL for every blog. For example blog1 will be published as example.kriti.blog/blog1 and child2 as example.kriti.blog/parent1/child2.
All the assets that blog1 requires are under blog1 folder same goes for child1 and child2. parent1 on the other hand is not a blog just a collection of blogs.
The static folder
static should contain all files which are to be hosted statically & favicons. These are not blogs just random files. These can be images, pdfs, text files, GIFs whatever you want.
| ...
|-- static/
|-- favicon-16x16.png
|-- favicon-32x32.png
|-- apple-touch-icon.png
|-- android-chrome-192x192.png
|-- android-chrome-512x512.png
|-- some-random/
|-- image.jpeg
|-- pdfs
|-- example.pdf
In above structure, image.jpeg would be available at example.kriti.blog/some-random/image.jpeg same goes for example.pdf at example.kriti.blog/pdfs/example.pdf.
Favicons
These are Good To Have files for every website. They would be available at
- favicon-16x16.png:
example.kriti.blog/favicon-16x16.png - favicon-32x32.png:
example.kriti.blog/favicon-32x32.png - apple-touch-icon.png:
example.kriti.blog/apple-touch-icon.png - android-chrome-192x192.png:
example.kriti.blog/android-chrome-192x192.png - android-chrome-512x512.png:
example.kriti.blog/android-chrome-512x512.png
Clients browsers will request these files to show as a blog icon.