Hexo的写作功能建立在Markdown文档基础上,我们需要先配置好写作环境。在项目根目录下的_config.yml文件中,找到与写作相关的配置项:
yaml复制# Writing
new_post_name: :title.md # 新建文章文件名格式
default_layout: post # 默认布局
titlecase: false # 标题是否自动转为标题格式
external_link:
enable: true # 在新标签页打开外部链接
field: site # 对整个站点生效
exclude: ''
filename_case: 0 # 文件名转换方式 (0: 不转换; 1: 小写; 2: 大写)
render_drafts: false # 是否渲染草稿
post_asset_folder: true # 是否启用资源文件夹
relative_link: false # 是否使用相对链接
future: true # 显示未来文章
highlight: # 代码高亮设置
enable: true
line_number: true
auto_detect: false
tab_replace: ''
特别建议开启post_asset_folder选项,这样每创建一篇新文章时,Hexo会自动生成同名文件夹用于存放图片等资源,方便资源管理。
Hexo提供了一系列便捷的写作命令:
bash复制# 创建新文章
hexo new "文章标题"
# 创建草稿
hexo new draft "草稿标题"
# 发布草稿
hexo publish draft "草稿标题"
# 本地预览
hexo server --draft # 包含草稿预览
提示:使用
--draft参数可以在本地预览时显示草稿文章,方便写作过程中的实时查看效果。
Hexo不仅支持标准Markdown语法,还扩展了一些实用功能:
Front-matter:每篇文章顶部的YAML格式元数据区
markdown复制---
title: 文章标题
date: 2023-07-20 14:00:00
tags: [标签1, 标签2]
categories: 分类
cover: 封面图片路径
---
文章摘要:在需要截断处插入<!-- more -->标记
资源引用:当启用post_asset_folder后,可以使用相对路径引用资源
markdown复制
模板定制:在scaffolds/post.md中定义常用Front-matter模板
markdown复制---
title: {{ title }}
date: {{ date }}
tags:
categories:
---
标签与分类管理:建议提前规划好分类体系,避免后期混乱
写作流程优化:
draft状态撰写初稿hexo server --draft实时预览publish命令发布注意:Hexo会根据Front-matter中的date字段决定文章是否发布,未来日期的文章默认不会显示,可通过配置
future: true修改这一行为。
图片处理:
视频嵌入:
markdown复制{% youtube 视频ID %}
代码展示:
markdown复制```python
def hello():
print("Hello, Hexo!")
code复制
自动生成目录:
在文章Front-matter中添加:
yaml复制toc: true
手动锚点:
markdown复制## 章节标题 {#anchor}
[跳转到章节](#anchor)
分页功能:
在需要分页处插入:
markdown复制<!-- nextpage -->
VS Code + 插件组合:
Typora:直观的所见即所得Markdown编辑器
图床工具:
创建scripts/auto-deploy.js实现写作后自动部署:
javascript复制hexo.extend.filter.register('after_post_render', function(data){
// 自动处理图片路径等
return data;
});
hexo.extend.filter.register('deployAfter', function(){
// 部署后自动提交Git备份
require('child_process').exec('git add . && git commit -m "update" && git push');
});
问题现象:本地预览正常,部署后图片无法显示
解决方案:
_config.yml中post_asset_folder: truemarkdown复制{% asset_img image.jpg 图片描述 %}
hexo-asset-image插件问题现象:文章链接包含中文时出现乱码或404
解决方案:
hexo-permalink-pinyin插件:bash复制npm install hexo-permalink-pinyin --save
_config.yml中添加:yaml复制permalink_pinyin:
enable: true
separator: '-' # 分隔符
问题现象:每次修改需要重启服务器才能看到效果
解决方案:
bash复制hexo server --watch --draft
hexo-browsersync插件实现浏览器自动刷新Git版本控制:
node_modules和public文件夹云同步:
source/_posts目录.git目录以保持版本历史对于使用Hexo+MySQL等数据库方案的博客:
bash复制# 定期导出SQL备份
mysqldump -u username -p database_name > backup.sql
source目录bash复制npm list --depth=0 > plugins.txt
Front-matter优化:
yaml复制keywords: [关键词1, 关键词2]
description: 文章摘要
URL优化:
yaml复制# _config.yml
permalink: :year/:month/:title/
内链建设:
markdown复制[相关文章]({% post_path 文章文件名 %})
添加预估阅读时间:
yaml复制# Front-matter
reading_time: true
添加文章进度条:
安装hexo-reading-time插件
暗黑模式支持:
在主题配置中启用:
yaml复制dark_mode: true
Valine:
yaml复制valine:
enable: true
appId: your-app-id
appKey: your-app-key
Waline:
bash复制npm install @waline/hexo
Google Analytics:
yaml复制google_analytics:
tracking_id: UA-XXXXX-X
百度统计:
yaml复制baidu_analytics: your-tracking-id
本地搜索:
bash复制npm install hexo-generator-searchdb --save
yaml复制search:
path: search.xml
field: post
format: html
Algolia搜索:
bash复制npm install hexo-algolia --save
建立内容日历:
系列文章策略:
markdown复制---
series: 系列名称
series_index: 2
---
每日写作打卡:
灵感收集系统:
_drafts/ideas.md收集写作灵感评论互动:
数据分析:
在实际写作过程中,我发现保持每周固定产出节奏比突击写作更可持续。建议新手博主从每周1-2篇短文章开始,逐步建立写作习惯后再增加篇幅和深度。对于技术博客,详细的配置示例和问题解决方案往往比理论讲解更有价值。