Gatsby Starter - Calpa's Blog
Build a blog system like Calpa's Blog in ease.
If you like this project, please don't hesitate to star it. Thank you.
Feature
Structure
- GatsbyJS v2, faster than faster
- Google Analytics
- Offline support
- Web App Manifest
- Page pagination
- Netlify optimization
- Awesome comment component (powered by Gitalk)
- Search Engine Optimization
- Parse Markdown in high speed (powered by gatsby-transformer-remark)
- Support to sitemap
Design
- Pagination
- Responsive Web Design
- Font Awesome is auto loaded (powered by react-fontawesome)
- Scroll smoothly (powered by smooth-scroll)
Data Source
You can edit the posts in /src/content/*.md
, or using Netlify-cms to edit the posts.
Customization for developers
- SEO
- Styled using SCSS
- Data Source
Get Started
Deploy with Netlify
Use the button below to build and deploy your own copy of the repository:
After clicking that button, you’ll authenticate with GitHub and choose a repository name. Netlify will then automatically create a repository in your GitHub account with a copy of the files from the template.
Next, it will build and deploy the new site on Netlify, bringing you to the blog system when the build is complete.
Code with Codesandbox
Use the button below to code with the blog system:
Prerequisites
- Git
- Node: any 8.x version starting with 8.5.0 or greater
- A fork of the repo (for any contributions)
- A clone of the this repo on your local machine
Develop
How to start this project?
- Install Gatsby-CLI
npm install --global gatsby-cli
- Create new Gatsby project using this starter,
awesome-blog
is your blog's folder
gatsby new awesome-blog https://github.com/calpa/gatsby-starter-calpa-blog
- Open the folder
cd awesome-blog
-
Run Development Server
npm start
to start the hot-reloading development server (powered by Gatsby)open http://localhost:8000
to open the site in your favorite browser
Configuration
Edit the export object in data/config
Note: To look up theme_color hex code, click here.
module.exports = {
title: 'your blog title here',
maxPages: 12
meta: {
description: 'blog description',
keyword: 'blog, JavaScript',
theme_color: '#hexcode',
favicon: 'https:yourimageurl.com',
google_site_verification: 'your google verification hash',
},
name: 'your name',
email: '[email protected]',
iconUrl: 'https://youricon.jpg',
License: 'by',
url: 'https://yourblog.me',
about: '/2018/05/01/about-your-name/',
// Sidebar
zhihuUsername: 'your zhiu user name here',
githubUsername: 'your github user name here',
friends: [
{
title: 'friend title',
href: 'link to their blog',
}
]
Plugins in the configuration file:
gaOptimizeId: 'GTM-WHP7SC5',
gaTrackId: 'UA-84737574-3',
navbarList: [
{
href: '/stats/',
title: 'stat title',
},
{
href: '/tags/',
title: 'tags',
},
{
href: '/guestbook/',
title: 'guestbook',
},
{
href: '/2018/10/04/about-your-blog/',
title: 'your title',
},
],
redirectors: [
{
fromPath: '/',
toPath: '/page/1',
},
],
Gitalk plugin configuration
gitalk: {
clientID: '18255f031b5e11edd98a',
clientSecret: '2ff6331da9e53f9a91bcc991d38d550c85026714',
repo: 'calpa.github.io',
owner: 'calpa',
admin: ['calpa'],
distractionFreeMode: true,
},
}
Deploy
Calpa's blog is currently using Netlify, though, you may use Github Pages as an alternative.
-
Github Pages
npm run deploy
to deploy the blog to Github Pages -
Netlify
Auto Deploy
Troubleshooting
-
For
window is defined
, wrap the require in check for window:if (typeof window !== `undefined`) { const module = require("module"); }
-
npm run reset
to clear the local cache -
Check GatsbyJS Debugging Docs
Contributing
Please read CONTRIBUTING.md for more information.
And don't hesitate to put your star and watch this starter project.
Contact
If you are interested in this project, please feel free to contact Calpa Liu.
Thanks For Contribute... :)