Create a new file inside of the folder ./src/pages/posts
, name the file issue-#.mdx
, where #
is the number of the current week. Use the latest issue as a template, leaving each section empty of the issue and adding the draft
tag.
The publish process is divided in two parts. First into the web, and for this it's only is necesarry to remove the draft tag and have it in the master branch. Second part for emails, and for this is necessary to generate the HTML.
- Remove any module import from the mdx files.
- Make sure all the necessary components are being provided in
./src/generate-email.tsx
. - Run
yarn generate issue-1
, whereissue-1
is the name of the mdx file without the extension.- This step will generate the file
./dist/email.html
- This step will generate the file
- Reverse changes in the mdx files
- Send the generated HTML
Steps 1 and 4 are needed because at the time of writing this, there was a problem with MDX runtime and imports.
This template is just a template and a boilerplate in which users can customize anything after the project was cloned and started. The following instructions introduce common customization points like adding new metadata or applying a new design theme.
All source codes related to the blog are under components, pages, and layouts directory. You can modify it freely if you want to apply your design theme. All components use styled-jsx and css-modules to define their styles, but you can choose any styling libraries for designing your theme.
The directory tree containing the blog source code are described below:
meta: yaml files defining metadata like authors or tags
public: images, favicons and other static assets
src
├── assets: other assets using inside of components
├── components: pieces of components consisting of pages
├── layouts: layout components for each post page
├── lib: project libraries like data fetching or pagination
└── pages: page components managing by Next.js
The category metadata that associates with content have the same relationship with the authors' one. Then reference these implementations for adding new metadata:
- public/admin/config.yml: author metadata definition for Netlify CMS
- src/lib/authors.tsx: fetches metadata and defines utility functions for components
- meta/authors.yml: author content managed by Netlify CMS
- layouts/index.tsx: displays author content for each page
You understood they have four steps to add the category metadata on your project after you read the above source codes:
- Define the category metadata on the above Netlify config file
- Create an empty file named with
categories.yml
under meta directory - Create a new module for fetching category metadata
- Display the category metadata on layouts or other components you want
It is all you have to do. After that, you can access Netlify CMS and create new categories at any time.
Modify config.yml and index.html under public/admin directory as following instructions:
Netlify CMS - Configuration Options #Locale
MIT