🇨🇳 中文文档

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.

# Locate the theme setting
theme: hexo-theme-cosy

Acquiring Cosy

  • Visit Cosy’s code repository to stay updated on the latest theme developments.
  • Download hexo-theme-cosy.zip from the releases page.
  • 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

# 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

language: en

Code Highlighting

Disable Hexo’s default highlight.js syntax highlighting.

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.

postCategoryIcons:
  - <svg>...</svg>
  - <svg>...</svg>
  - <svg>...</svg>

Website Favicon

  • Supports svg
  • Supports image URL, e.g., /img/favicon.png
favicon: ''

ICP Number 🇨🇳

😁 If not required, can be directly deleted.

icp: 苏ICP备xxxxxxx号-x

😁 If not required, can be directly deleted or set to false.

motto: false

Post Copyright Statement

Enabled by default. When enable: false, it is disabled by default.

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.

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.

{% mermaid %}
graph TD;
    A --> B;
    A --> C;
    B --> D;
    C --> D;
{% endmermaid %}

Corresponding configurations are as follows:

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.

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

  1. Replace configurations

Add the following to Hexo’s _config.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 for the latest instructions.

Installation command:

npm install hexo-algoliasearch --save

Using Algolia

Before publishing each blog post, carry out index uploading operations. The usual commands are as follows:

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.

After registering, fill in your appKey and cityCode in the configuration.

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:

---
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
---
title: Article 1
top: 0
categories:
  - javascript
---
  • Article 2
---
title: Article 2
top: 1
categories:
  - javascript
---
  • Article 3
---
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:

---
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

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
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

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
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