rsnext/examples/blog-starter/README.md

61 lines
2.3 KiB
Markdown
Raw Normal View History

# A statically generated blog example using Next.js and Markdown
2019-06-13 17:32:04 +02:00
This example showcases Next.js's [Static Generation](https://nextjs.org/docs/basic-features/pages) feature using markdown files as the data source.
The blog posts are stored in `/_posts` as markdown files with front matter support. Adding a new markdown file in there will create a new blog post.
To create the blog posts we use [`remark`](https://github.com/remarkjs/remark) and [`remark-html`](https://github.com/remarkjs/remark-html) to convert the markdown files into an HTML string, and then send it down as a prop to the page. The metadata of every post is handled by [`gray-matter`](https://github.com/jonschlinkert/gray-matter) and also sent in props to the page.
## Demo
[https://next-blog-starter.now.sh/](https://next-blog-starter.now.sh/)
### Related examples
- [DatoCMS](/examples/cms-datocms)
- [Sanity](/examples/cms-sanity)
- [TakeShape](/examples/cms-takeshape)
- [Prismic](/examples/cms-prismic)
- [Contentful](/examples/cms-contentful)
2019-06-13 17:32:04 +02:00
## How to use
### Using `create-next-app`
Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the example:
2019-06-13 17:32:04 +02:00
```bash
npm init next-app --example blog-starter blog-starter-app
# or
yarn create next-app --example blog-starter blog-starter-app
2019-06-13 17:32:04 +02:00
```
### Download manually
Download the example:
2019-06-13 17:32:04 +02:00
```bash
curl https://codeload.github.com/vercel/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/blog-starter
2019-06-13 17:32:04 +02:00
cd blog-starter
```
Install dependencies and run the example:
2019-06-13 17:32:04 +02:00
```bash
npm install
npm run dev
# or
2019-06-13 17:32:04 +02:00
yarn install
yarn dev
2019-06-13 17:32:04 +02:00
```
Your blog should be up and running on [http://localhost:3000](http://localhost:3000)! If it doesn't work, post on [GitHub discussions](https://github.com/vercel/next.js/discussions).
2019-06-13 17:32:04 +02:00
Deploy it to the cloud with [Vercel](https://vercel.com/import?filter=next.js&utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)).
# Notes
This blog-starter uses [Tailwind CSS](https://tailwindcss.com). To control the generated stylesheet's filesize, this example uses Tailwind CSS' v1.4 [`purge` option](https://tailwindcss.com/docs/controlling-file-size/#removing-unused-css) to remove unused CSS.