首页 > 其他分享 >基于Hexo和Butterfly创建个人技术博客,(2) 博客站点配置,Hexo框架_config.yml配置文件细说明

基于Hexo和Butterfly创建个人技术博客,(2) 博客站点配置,Hexo框架_config.yml配置文件细说明

时间:2023-06-17 11:33:24浏览次数:50  
标签:配置文件 Hexo title 博客 source 文件夹 默认值 true dir

Hexo官司网查看 这里 个人站点效果查看这里

本章目标: 掌握hexo框架_config.yml配置文件的配置方法

特别说明:

  1. 本文中的配置是建站必要的配置,表格单元格内有 重要
  2. 对于Hexo提供的扩展配置会在另外的章节随着功能一起讲解,因这些扩展功能全是可选的在建站时不一定会需要;
  3. yaml文件的值可带引号也可以不带,比如 title: "abc"title: abc 全是正确的,建议不带双引号;
  4. 文中的文章专指单个的博文网页,即一个.md文件或生成的.html文件;

一、网站设置参数

参数

描述

title重要

网站标题,用于收藏和SEO

subtitle

网站副标题,建议写上主要用于收藏时显示名称用

description 重要

网站描述,主要用于SEO

keywords

网站的关键词,对SEO作用不大,建议写,多个关键词用英文的逗号分隔

author 重要

您的名字,用于主页显示

language 重要

网站使用的语言,常见的有enzh-Hanszh-CN

timezone 重要

网站时区,对于中国大陆地区可以使用 Asia/Shanghai

meta_generator 重要

网页是否生成:元数据元素,默认值为true,详细查看html meta

theme 重要

主题设置,默认为landspace

deploy

发布配置,可配置类似github、sftp等类型,可查看第一章中发布一节介绍

1.1、网站主页设置

如没必要,不建议修改此处的值

参数

说明

path重要

网站主页地址

per_page

分页条数

order_by

排序方式

示例

index_generator:
  path: ''
  per_page: 10
  order_by: -date

二、网址设置参数

参数

默认值

url 重要

本站地址,例如 http://example.com/blog,则请将您的 url 设为 http://example.com/blog 并把 root 设为 /blog/

root 重要

网站根目录

permalink重要

文章的目录和文件名格式,默认值为:year/:month/:day/:title/,建议使用abbrlink插件实现,后面章节有描述如何配置此插件

permalink_defaults

永久链接中各部分的默认值

pretty_urls .trailing_index

是否在永久链接中保留尾部的 index.html,设置为 false 时去除,默认值true

pretty_urls .trailing_html

是否在永久链接中保留尾部的 .html, 设置为 false 时去除 ,默认值true

2.1、permalink文章生成路径

官方解释为永久路径,其实简单理解就是博客文件的访问路径,因为这些文件是物理存在的不能随意被更改,所以称之为永久路径。如果采用abbrlink插件,则此处的值可忽略,可选的参数值如下:

变量

描述

:year

文章的发表年份(4 位数)

:month

文章的发表月份(2 位数)

:i_month

文章的发表月份(不含前导零)

:day

文章的发表日期 (2 位数)

:i_day

文章的发表日期(不含前导零)

:hour

文章发表时的小时 (2 位数)

:minute

文章发表时的分钟 (2 位数)

:second

文章发表时的秒钟 (2 位数)

:title

文件名称 (相对于 "source/_posts/" 文件夹)

:name

文件名称

:post_title

文章标题

:id

文章 ID

:category

分类。如果文章没有分类,则是 default_category 配置信息。

:hash

文件名(与 :title 相同)和日期的 SHA1 哈希值(12位16进制数)

您可在 permalink_defaults 参数下调整永久链接中各变量的默认值:

permalink_defaults:
  lang: en
#源文件:source/_posts/hello-world.md
title: Hello World
date: 2013-07-14 17:01:34
categories:
- foo
- bar

permalink参数值

生成的文件名或文件目录

:year/:month/:day/:title/

2013/07/14/hello-world/index.html

:year-:month-:day-:title.html

2013-07-14-hello-world.html

:category/:title/

foo/bar/hello-world/index.html

:title-:hash/

hello-world-a2c8ac003b43/index.html

#源文件:source/_posts/lorem/hello-world.md
title: Hello World
date: 2013-07-14 17:01:34
categories:
- foo
- bar

permalink参数值

生成的文件名或文件目录

:year/:month/:day/:title/

2013/07/14/lorem/hello-world/

:year/:month/:day/:name/

2013/07/14/hello-world/

2.2、permalink对I18N多语种支持

若要建立一个多语种的网站,可修改 new_post_namepermalink 参数,如下:

new_post_name: :lang/:title.md
permalink: :lang/:title/

当您建立新文章时,文章会被储存到:

# => source/_posts/tw/Hello-World.md
$ hexo new "Hello World" --lang tw

而网址会是:

http://localhost:4000/tw/hello-world/

三、目录设置参数

这些目录规定了源文件的存放位置,另外需要注意这些文件目录是hexo框架在设计时抽象出来的一个技术博客必要的目录结构且与hexo特定的功能有关,只能配置不能删减否则会缺少必要的功能。

参数

描述

默认值

source_dir

资源文件夹,这个文件夹用来存放内容。

source

public_dir 重要

公共文件夹,这个文件夹用于存放生成的站点文件。这个可以改成与nginx相同的值,省去了配置

public

tag_dir

标签文件夹

tags

archive_dir

归档文件夹

archives

category_dir

分类文件夹

categories

code_dir

Include code 文件夹,source_dir 下的子目录

downloads/code

i18n_dir

国际化(i18n)文件夹

:lang

skip_render

跳过指定文件的渲染。匹配到的文件将会被不做改动地复制到 public 目录中,比如"mypage/**/*"


四、文章设置参数

参数

描述

默认值

new_post_name

新文章的文件名称

:title.md

default_layout重要

预设布局

post

auto_spacing重要

在中文和英文之间加入空格

false

titlecase

把标题转换为骆峰式写法

false

external_link

在浏览器新标签中打开链接

true

external_link.field

对整个网站(site)生效或仅对文章(post)生效

site

external_link.exclude

需要排除的域名。主域名和子域名如 www 需分别配置

[]

filename_case

把文件名称转换为 (1) 小写或 (2) 大写

0

render_drafts

显示草稿

false

post_asset_folder重要

启动Asset 文件夹

false

relative_link

把链接改为与根目录的相对位址

false

future重要

显示未来的文章

true

highlight重要`

代码块的设置,后面会讲


prismjs

代码块的设置,后面会讲


4.1、highlight代码块样式

Hexo默认提供了 highlight.js 与 prismjs 两种代码高亮库,只能开启一个。

# _config.yml
highlight:
  enable: true
prismjs:
  enable: false #禁用

默认配置如下:

# _config.yml
highlight:   默认开启
  enable: true
  auto_detect: false //能够自动检测代码块的语言,建议关掉此功能
  line_number: true
  line_threshold: 0 //只有代码块的行数超过这个阈值才显示行数。默认值为 0
  tab_replace: '' //用代码内的 tab (\t) 替换为给定值,默认值是两个空格。
  exclude_languages:
    - example  //哪些语言不显示
  wrap: true //和line_number一同开启才会显示行号
  hljs: false //没啥大意思,给 class 添加 hljs- 前缀,防止样式重名
prismjs:
  enable: false
  preprocess: true
  line_number: true
  line_threshold: 0
  tab_replace: ''

4.2、分页设置

此处的分页是用于设置列表页的分页设置的,列表页包含主页、分类页、归档页、标签页等,采用默认值即可

参数

描述

默认值

per_page

每页显示的文章量 (0 = 关闭分页功能)

10

pagination_dir

分页目录

page

例如:

pagination_dir: 'page'
# http://example.com/page/2

pagination_dir: 'awesome-page'
# http://example.com/awesome-page/2

4.3、文章meta信息显示

meta信息是html的一个标准

参数

说明

meta_generator

默认值为true,表示是否在文章标题下方显示meta信息

五、显示其它设置

5.1、分类 & 标签

一般不需要设置

参数

描述

默认值

default_category重要

默认分类

uncategorized

category_map重要

分类别名


tag_map 重要

标签别名


5.1、日期 / 时间格式

一般不需要设置

参数

描述

默认值

date_format

日期格式

YYYY-MM-DD

time_format

时间格式

HH:mm:ss

updated_option

当 Front Matter 中没有指定 created 时 updated 的取值

mtime

updated_option

  • mtime: 使用文件的最后修改时间 。
  • date: 使用 date 作为 updated 的值。

六、源文件编译设置

通过设置 include/exclude 可以让 Hexo 进行处理或忽略某些目录和文件夹。includeexclude 选项只会应用到 source/ ,而 ignore 选项会应用到所有文件夹.

  • source/_posts 文件夹是一个例外,但该文件夹下任何名称以 _ 开头的文件或文件夹仍会被忽略。不建议在该文件夹中使用 include 规则。

参数

描述

include

Hexo 默认会不包括 source/ 目录下 以下划线和 . 开头的文件和文件夹

exclude

Hexo 不包括 source/ 下的这些文件和目录

ignore

Hexo 会忽略整个 Hexo 项目下的这些文件夹或文件

列表中的每一项都必须用单引号或双引号包裹起来,例如:

# 处理或不处理目录或文件
include:
  - ".nojekyll"
  # 处理 'source/css/_typing.css'
  - "css/_typing.css"
  # 处理 'source/_css/' 中的任何文件,但不包括子目录及其其中的文件。
  - "_css/*"
  # 处理 'source/_css/' 中的任何文件和子目录下的任何文件
  - "_css/**/*"

exclude:
  # 不处理 'source/js/test.js'
  - "js/test.js"
  # 不处理 'source/js/' 中的文件、但包括子目录下的所有目录和文件
  - "js/*"
  # 不处理 'source/js/' 中的文件和子目录下的任何文件
  - "js/**/*"
  # 不处理 'source/js/' 目录下的所有文件名以 'test' 开头的文件,但包括其它文件和子目录下的单文件
  - "js/test*"
  # 不处理 'source/js/' 及其子目录中任何以 'test' 开头的文件
  - "js/**/test*"
  # 不要用 exclude 来忽略 'source/_posts/' 中的文件。你应该使用 'skip_render',或者在要忽略的文件的文件名之前加一个下划线 '_'
  # 在这里配置一个 - "_posts/hello-world.md" 是没有用的。

ignore:
  # 忽略任何一个名叫 'foo' 的文件夹
  - "**/foo"
  # 只忽略 'themes/' 下的 'foo' 文件夹
  - "**/themes/*/foo"
  # 对 'themes/' 目录下的每个文件夹中忽略名叫 'foo' 的子文件夹
  - "**/themes/**/foo"

附:_config默认配置

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: KorgClub
subtitle: 全栈式程序开发技术博客
description: Korg8是全栈式程序开发课程网站,包括java、python、js、objective-c、spring、cglib等基础, 涉及领域包括但不限于DDD、软件工程、架构设计、Devops、AI、深度学习、插件开发.
keywords: blog.korg8, 基础,java,python,js,objective-c,spring,DDD,软件工程,架构设计,Devops,深度学习,IDEA插件开发,字节码编程
author: Korgs
language: zh-CN
timezone: Asia/Shanghai
theme: butterfly

# Home page setting
index_generator:
  path: ''
  per_page: 10
  order_by: -date


# URL
url: http://blog.korg8.com
root: /

permalink: posts/:abbrlink/
permalink_defaults:
pretty_urls:
  trailing_index: true
  trailing_html: true
abbrlink:
  alg: crc32
  rep: hex
  drafts: false
  auto_category:
    enable: true
    depth: #3(default)
    over_write: false
  auto_title: false
  auto_date: false
  force: false

# Directory
source_dir: source
public_dir: html
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Writing
new_post_name: :title.md
default_layout: post
auto_spacing: true
titlecase: false
external_link:
  enable: true
  field: site
filename_case: 0
render_drafts: false
post_asset_folder: true
marked:
  prependRoot: true
  postAsset: true
relative_link: false
future: true
highlight:
  enable: true
  line_number: true
  line_threshold: 15
  auto_detect: false
  tab_replace: ''
  wrap: true
  hljs: false
prismjs:
  enable: false
  preprocess: true
  line_number: true
  tab_replace: ''

# Metadata elements
meta_generator: true

# Date / Time format
date_format: YYYY-MM-DD
time_format: HH:mm:ss
updated_option: 'mtime'

# Pagination
per_page: 10
pagination_dir: page

# Include / Exclude file(s)
include:
exclude:
ignore:

标签:配置文件,Hexo,title,博客,source,文件夹,默认值,true,dir
From: https://blog.51cto.com/arch/6504640

相关文章

  • 更改博客园的URL的请求邮箱
    博客设置https://i.cnblogs.com/[email protected] 修改用户名、昵称、手机、邮箱https://account.cnblogs.com/settings/account个人信息https://home.cnblogs.com/set/profile/......
  • MyBatis核心配置文件
              ......
  • python configparser读取配置文件
    #coding:utf-8importconfigparserimportosimportjsonbase_path=os.path.dirname(os.path.abspath(__file__))conf_file=os.path.join(base_path,"config.ini")defread_config():#读取配置文件信息try:cf=configparser.ConfigParser()......
  • python 读取yaml配置文件
    #coding:utf-8importyaml#pipinstallpyyamlimportosimportjsonbase_path=os.path.dirname(os.path.abspath(__file__))conf_file=os.path.join(base_path,"db.yaml")defread_yaml():#读取配置文件信息try:f=open('db.yaml&#......
  • Docsify on VPS,搭建最简个人博客
    前一段VPS到期了,续费重启之后发现我的Ghost博客系统起不来了,想升级到最新5.0,一看还需要配套升级Nodejs和MySQL。我是一个特别怕麻烦的人,想着干脆看看有没有新的方案,更轻量级的,让知识记录和分享更没有负担的方案。网上搜了一圈,感觉拿Docsify做个博客网站不错,静态页面,没有数据库依......
  • 基于Jekyll的博客模板
    概述基于Jekyll的博客模板,清爽配色,简约风格。详细效果环境配置环境Windows10GitBash安装ruby下载rubyinstaller安装:https://rubyinstaller.org/downloads/ (推荐Ruby2.2.6版本)$ruby-v安装DevKit下载DevKit.exe:https://rubyinstaller.org/downloads/ ,解压......
  • 快速搭建一个自己的博客
    准备本地系统环境:Ubuntu20.04.5LTSNode版本:18.15Git版本:2.25.1一个github账号一台云服务器一个备案好的域名系统环境不同,根据自己的系统来操作就行,步骤差不多。Node、Git的版本选择长期稳定支持的新版本就行。云服务器和域名不是必须的,只是为了私有化更强。相信看到......
  • 第三次博客:PTA题目集6-8总结
    第三次博客:PTA题目集6-8总结 前言:菜单系列终于结束了,但是接踵而至的是全新的选课系列,明明JAVA课都已经上完了,但是大作业的更新却并没有停止,由此可见蔡老师真的太爱我们了。这次的选课系统个人感觉是和点菜大同小异的,菜单==课表,选课==点菜,算......
  • 博客园 文字颜色/图片大小/图片居中
    图片居中设置:字体颜色:<fontsize=5>字体、字号和颜色</font><fontface="黑体">我是黑体字</font><fontface="微软雅黑">我是微软雅黑</font><fontface="STCAIYUN">我是华文彩云</font><fontcolor=#0099ffsize=7fac......
  • 博客园自定义样式修改标签页的icon图标
    步骤1:选择一张自己喜欢的图片,上传到https://www.logosc.cn/logo/favicon这个网站,将它转换成ico格式步骤2:进入博客园→文件界面,1.上传ico格式文件,2.点击这个文件步骤3:复制这一段url步骤4:进入博客园设置界面,将这段代码放入页眉<scripttype="text/javascript"language="jav......