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