blog-hexo/source/_posts/Cosy-Starter-Guide.md
2023-10-30 15:45:20 +08:00

458 lines
11 KiB
Markdown

---
title: Cosy Starter Guide
top: 1
categories:
- Hexo
status: doing
---
[🇨🇳 中文文档](https://mozzie.cn/2023/10/20/Cosy%20%E5%85%A5%E9%97%A8/)
# Hexo Installation
Installing a `Hexo` theme is straightforward. Simply copy the `Hexo-theme-cosy` directory to the `themes` directory, and then modify the theme configuration in `Hexo`'s `_config.yml`.
```yml
# Locate the theme setting
theme: hexo-theme-cosy
```
## Acquiring Cosy
- Visit [Cosy's code repository](https://github.com/17px/hexo-theme-cosy/tree/main) to stay updated on the latest theme developments.
- Download `hexo-theme-cosy.zip` from the [releases page](https://github.com/17px/hexo-theme-cosy/releases).
- Extract it into your site's `themes` directory.
- Enable it in Hexo's `_config.yml`.
# Hexo Configuration
Adjust settings in `Hexo`'s `_config.yml`.
## Basic Configuration
```yml
# Website title
title: 17px blog
# Sidebar header
subtitle: "Mozzie"
# HTML meta description for SEO
description: ""
# HTML meta keywords for SEO
keywords:
# Copyright text displaying author's name
author: Mozzie
# Set your website URL here
url: https://mozzie.cn
```
## Language Switch
You can find different language files in `hex theme liner/languages`. If you want to switch languages, fill in the file name of `yml` in the `_config.yml` file
```yml
language: en
```
## Code Highlighting
Disable Hexo's default highlight.js syntax highlighting.
```yml
highlight:
enable: false
line_number: true
auto_detect: false
tab_replace: ""
wrap: true
hljs: false
prismjs:
enable: true
preprocess: true
line_number: true
line_threshold: 0
tab_replace: ""
```
# Cosy Theme Configuration
💡 The following settings are based on the `_config.yml` under `hexo-theme-cosy`.
## Post Category Icons
In sequence, set the `svg` icons. You can get a wide variety of icons at [xicon](https://www.xicons.org/).
```yml
postCategoryIcons:
- <svg>...</svg>
- <svg>...</svg>
- <svg>...</svg>
```
## Website Favicon
- Supports `svg`
- Supports `image URL`, e.g., `/img/favicon.png`
```yml
favicon: ''
```
## ICP Number 🇨🇳
😁 If not required, can be directly deleted.
```yml
icp: 苏ICP备xxxxxxx号-x
```
## Footer Text on Homepage 🇨🇳
😁 If not required, can be directly deleted or set to `false`.
```yml
motto: false
```
## Post Copyright Statement
Enabled by default. When `enable: false`, it is disabled by default.
```yml
postCopyright:
enable: true
license: CC BY-NC-SA 4.0
license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/
```
## Katex Mathematical Formulas
You can configure the CDN yourself.
```yml
katex:
enable: true
jsCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js
cssCdn: //cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.css
```
## Mermaid Flowcharts
To draft flowchart syntax, use `{% mermaid %}` and `{% endmermaid %}` as wrappers.
```markdown
{% mermaid %}
graph TD;
A --> B;
A --> C;
B --> D;
C --> D;
{% endmermaid %}
```
Corresponding configurations are as follows:
```yml
mermaid:
enable: true
cdn: //cdn.jsdelivr.net/npm/mermaid@10.4.0/dist/mermaid.min.js
```
## Valine Comments
First, register as a `LeanCloud` international user and create a database.
Please proceed in accordance with relevant regional regulations.
```yml
valine:
enable: true
# 替换
appId: appId
# 替换
appKey: appKey
avatar: monsterid
cdn: //unpkg.com/valine@latest/dist/Valine.min.js
# 替换
serverURLs: //xxxxxxxx.api.lncldglobal.com
```
# Algolia Search
The blog comes with built-in local search, based on frontend development, which may have some issues. It's recommended to switch to `Algolia`. The free account has a total of 10,000 records and 100,000 operations per month.
## Register & Acquire Key
1. Create a new `Index`, for example, `hex-blog`
2. Copy and save:
- Application ID
- Search-Only API Key
- Admin API Key
- Usage API Key
![API Keys](/img/algolia-api-keys.png)
3. Replace configurations
Add the following to Hexo's `_config.yml`
```yml
algolia:
# Replace
appId: Application ID
# Replace
apiKey: Usage API Key
# Do not disclose, used for reporting, replace
adminApiKey: Admin API Key
# Replace
SearchOnlyAPIKey: Search-Only API Key
chunkSize: 5000
# Replace
indexName: hex-blog
fields:
- content:strip
- categories
- date
- permalink
- slug
- tags
- title
```
## Install hexo-algoliasearch
This is a Hexo blog post index plugin that automates the submission of indexes to Algolia.
> If you encounter any problems, you can read the [hexo-algoliasearch repository](https://www.npmjs.com/package/hexo-algoliasearch) for the latest instructions.
Installation command:
```bash
npm install hexo-algoliasearch --save
```
## Using Algolia
Before publishing each blog post, carry out index uploading operations. The usual commands are as follows:
```bash
hexo clean
hexo generate
hexo algolia
```
# QWeather Widget 🇨🇳
Cosy mainly targets domestic users and integrates QWeather cards on the homepage. Register via [QWeather Developer Service](https://dev.qweather.com/docs/start/).
After registering, fill in your `appKey` and `cityCode` in the configuration.
```yml
weather:
enable: true
# Replace
cityCode: cityCode
appKey: appKey
```
You can find your city's `cityCode` in the official region list repository's `China-City-List-latest.csv`.
# Front Matter
In Hexo's Markdown files, a typical YAML-formatted `Front Matter` might look like this:
```markdown
---
title: My Article Title
categories:
- javascript
tags:
- Programming
- JavaScript
---
```
## top
To pin an article to the top, assign a numerical value to the `top` metadata. Articles with a specified `top` value will be marked with a 📌 icon in the category list.
For example, if there are three articles:
- Article 1
```markdown
---
title: Article 1
top: 0
categories:
- javascript
---
```
- Article 2
```markdown
---
title: Article 2
top: 1
categories:
- javascript
---
```
- Article 3
```markdown
---
title: Article 3
categories:
- javascript
---
```
Then, under the `javascript` category, the sort order will be: `Article 1 > Article 2 > Article 3`.
## status
This is used to differentiate the status of articles and can be quickly `filtered` using the category list. The Cosy theme comes with 4 built-in statuses:
- done: Completed
- doing: In Progress
- todo: To Do
- other: Abandoned
For example:
```markdown
---
title: Article 1
categories:
- javascript
status: done
---
```
# Custom Page
Hexo uses Markdown (or other rendering engine) to parse your article and generate static files for quick loading. In addition to the default generated articles and archive pages, Hexo also allows you to create custom pages.
## Roadmap
To create a page, you can use the command
```bash
hexo new page roadmap
```
After success, a new folder `/roadmap/index.md` will be generated under the `source/` folder
You can refer to this template for configure `/roadmap/index.md`, parameter description:
- title: Title of roadmap page HTML
- initYear: Default displayed year
```markdown
title: Title - roadmap
layout: roadmap
initYear: 2023
years:
2022:
- title: reading
start: 01-01
end: 1-5
- title: cooking
start: 02-01
end: 05-30
2023:
- title: Yue Mo Du Qian
start: 01-01
end: 1-2
- title: To use and preserve in vain
start: 02-01
end: 06-30
- title: Short Song Line
start: 10-26
end: 10-31
content: Singing and drinking, geometry of life! For example, the morning dew is more bitter than the past. Be generous and forget your worries. How to relieve worries? Only Du Kang. Qingqing Zijin, carefree in my heart. But for your sake, I have been pondering until now. Yo, deer chirp, eating wild apples.
- title: Prosody enlightenment
start: 11-01
end: 11-31
content: The flowers bloom in red and beautiful colors, and the water ripples with azure glass. Going to my wife to explore my neighbor's date, going to my wife to plant a backyard sunflower
```
## Resume
To create a page, you can use the command
```bash
hexo new page resume
```
After success, a new folder will be generated folder `/resume/index.md` under the `source/`
You can refer to this template for configure `/resume/index.md`, parameter description:
- title: The title of the resume page's HTML
- avatar: Address of the avatar image
```markdown
title: resume
layout: resume
avatar: /img/avatar.png
name: Hi! Mozzie
role: Full Stack
email: himozzie@gmail.com
phone: +86 180-xxxx-xxx
birth: Jan 21, 1994
location: Nanjing, China
social:
- name: github
link: https://github.com/17px
icon: svg
about:
- My job is to build your website so that it is functional and user-friendly but at the same time attractive.
- Moreover, I add personal touch to your product and make sure that is eye-catching and easy to use. My aim is to bring across your message and identity in the most creative way. I created web design for many famous brand companies.
skill:
- Familiar with Node, with backend development capabilities, experience in individual application projects such as SpringBoot, Egg, Koa2, and Midway, and experience in Nestjs microservice application projects
- Having experience in Monorepo engineering and possessing the ability to separate the front and rear ends of a single unit and apply DevOps
- Familiar with three. js, familiar with Vtk. js, with development experience in medical 3D front-end and graphics related fields
- Master basic Linux commands and understand the basic use of Nginx and Docker
education:
- school: University School of the Arts
time: 2012-2016
workExp:
- inc: Creative Director
time: 2021.09 ~ today
- inc: Web Designer
time: 2021.01 ~ 2021.09
projectExp:
- name: PC/React • Annotation, Algorithm Data Center
desc: This is a xxx system. It mainly includes a b c function. I am mainly responsible for the development and maintenance of the x, y, and z modules.
list:
- Using pnpm workspace to manage multiple code repositories in Monorepo, supporting the coexistence of multiple frameworks, and sharing common component libraries and capabilities
- Use Rollup to package some functional capabilities (such as a b) on your own, which can be used for both browsers and node.js to achieve code isomorphism
- Develop the system server using Nest.js and use it for the microservice system of the project
- name: PC/React • Tavigator Aortic Root/Peripheral
desc: This is a xxx system. It mainly includes a b c function. I am mainly responsible for the development and maintenance of the x, y, and z modules.
list:
- Using pnpm workspace to manage multiple code repositories in Monorepo, supporting the coexistence of multiple frameworks, and sharing common component libraries and capabilities
- Use Rollup to package some functional capabilities (such as a b) on your own, which can be used for both browsers and node.js to achieve code isomorphism
- Develop the system server using Nest.js and use it for the microservice system of the project
```