Writing Pages

Bloggrify is made to let you write all your content in Markdown and Vue components with the MDC syntax.

Each Markdown pages in the content/ folder will be mapped to a route.

FileGenerated route
It is highly recommended to use a hierarchical structure for the files, to make the blog more organized and to make the urls more meaningful.


All the files are markdown files with a frontmatter at the top of the file. They are all listed on the index page, except the ones

  • with the draft: true property.
  • with the listed: false property.

Docus supports multiple Front-matter attributes for pages.

It also supports frontmatter to add metadata to your markdown files.

id: "2"
title: "Use markdown power"
description: "Use markdown at its full potential."
date: "2024-02-09"
  - markdown
cover: "doc/markdown.png"

Here is the list of all the frontmatter attributes:

idstringmandatory if you want to use the comment system. It is used to identify the article.
titlestringDefines the page title
descriptionstringDefines the page description. Important for SEO
datestringis used to sort the articles. Date in the future will not be displayed. (format: YYYY-MM-DD)
coverstringImage for the blog post, also used as an OpenGraph cover image
commentsfalsebooleanDisable comments on this page
listedtruebooleanToogles the visibility of this page on the index page. But the page is still visible and listed on Google. Example: an about page
hiddenfalsebooleanToogles the visibility everywhere, but the url still works. Example: a redirect page
draftfalsebooleanIt's like "hidden" AND the url don't work.
table_of_contentsbooleanToogles the table of content on the sidebar (depends on the theme)
tagsarrayList of tags related to the article
categoriesarrayList of categories related to the article
redirect_to_domainarrayPermanent redirect (301) to another domain with the same path. See documentation
redirect_to_full_urlarrayPermanent redirect (301) to another url. See documentation
languagestringThe language of the blog post, only used for alternates version if any
alternatesarrayThe language of the blog post, only used for alternates version if any
alternates.LANGCODEstringThe url of a page with the same content in another language (to avoid duplicate content and explicit the relation between the two pages)