Oasis is a lightweight page-based starter with a highlight-based UI
Project by je0ngyun
gatsby-starter-oasis.netlify.app
- Code highlight
- highlight-based UI
- Based on GitHub typography
- Scroll gauge bar
- Utterances Comment
- Dark mode support
- Page-based post classification
- Provides a page creation tool
- Provides a dedicated page for project introduction
- Detailed category sidebar support in PC
- Post search support in PC
- Stylesheet built using SASS
- Responsive web design
- Lighthouse 98+ performance
- Google Analytics
- RSS Feed
- Sitemap, Robots.txt
- SEO
# Create a gatsby site using this starter
npx gatsby new my-blog https://github.com/je0ngyun/gatsby-starter-oasis
# or
npm install -g gatsby-cli
gatsby new my-blog https://github.com/je0ngyun/gatsby-starter-oasis
You can fix meta data of blog in user-meta-config.js
file.
You can change the favicon and profile image of blog in assets
directory.
cd my-blog/
npm run develop
You can write
posts/index.md file
- markdown post on the main screen.posts/projects/ directory
- posts on the projects page.posts/develop/ directory
- posts on the develop page.
If you want to know how the addresses of each post are generated, please read Guide.
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.
It's okay to use gh-page instead of netlify
.
โโโ assets
โ โโโ favicon.png // your favicon
โ โโโ profile.png // your profile image
โโโ page-gen-template // templates referenced by the page creation tool
โ โโโ template.js
โ โโโ template.scss
โโโ posts
โ โโโ index.md // markdown post on the main screen
โ โโโ develop // posts on the develop page
โ โ โโโ devops // detailed category
โ โ โโโ docs // ...
โ โ โโโ nodejs // ...
โ โโโ projects // posts on the projects page
โ โโโ project-list // ...
โโโ src
โ โโโ components
โ โโโ hooks
โ โโโ pages // routing except post
โ โโโ styles // you can customize color
โ โ โโโ dark-mode.scss
โ โ โโโ light-mode.scss
โ โ โโโ markdown.scss
โ โ โโโ utils.scss
โ โ โโโ variables.scss
โ โโโ templates
โ โโโ utils
โ โโโ typography.js // base typography
โโโ gatsby-browser.js // import typeface here
โโโ gatsby-config.js // gatsby config
โโโ gatsby-node.js
โโโ user-meta-config.js // you can set all meta config
- General post
---
title: 'Welcome Oasis'
date: '2021-02-19 16:00:30'
tags: 'Gatsby,Starter,Blog' // separated by commas
---
- Project post
---
title: "Gatsby-Starter-Oasis"
date: "2022-02-19 16:00:30"
tags: "lightweight, page-based gatsby starter" // one line summary
tech: "Gatsby,React,Sass" // separated by commas
period: "2022.01 ~ 2022.02"
desc: "desc1;desc2;desc3" // project description, separated by semicolon
---
./posts/
โโโ develop
โ โโโ my-post.md // 1
โ โโโ devops
โ โ โโโ devops-category-post.md // 2
โ โโโ docs
โ โ โโโ page-creation-guide.md
โ โ โโโ quick-start.md
โ โ โโโ test
โ โ โโโ quick-start2.md // 3
โ โโโ nodejs
โ โโโ nodejs-category-post.md
In the above structure, the categories of the sidebar of the develop page show devops, docs, and nodejs.
Post 1 is created with the address ${your-site}/develop/my-post
and it does not belong to any category in the sidebar.
Post 2 is created with the address ${your-site}/develop/devops/devops-category-post.
In the case of post 3, it is created with the address of ${your-site}/develop/docs/test/quick-start2.
It belongs to the docs category in the sidebar.
npm run page
Add the following to user-meta-config
const pageMetadata = {
//menu - Please enter a menu link to add to the navbar.
//If you do not want to add a link to the navbar, you can leave it blank.
menu: [
{ path: '/', linkname: 'Home' },
{ path: '/projects', linkname: 'Projects' },
{ path: '/develop', linkname: 'Develop' },
{ path: '/life', linkname: 'Life' }, // add!!
],
//directorys - Enter the directory to be mapped with the page.
//That directory is automatically linked to the gatsby filesystem.
directorys: ['develop', 'projects', 'life'], // add life!!
}
- RSS Feed ->
${user-site}
/rss.xml - Sitemap ->
${user-site}
/sitemap/sitemap-index.xml - Robots.txt ->
${user-site}
/robots.txt