Hexo Netlify CMS 在线编辑博客
本文由 Fluid 用户授权转载,版权归原作者所有。
本文作者:千泷
原文地址:https://www.myql.xyz/post/e00ab0f6/
✨前言
我们都知道,Hexo 是一个静态部署博客的框架,优点在于速度快,成本低(无需服务器),缺点在于繁琐,你每次更新文章都需要去改代码,再部署推送,修改配置也是如此,你不能像 WordPress
一样直接在后台修改配置并使它生效。
不过有很多教程可以让你无需繁琐的部署,只管推送代码,通过 GitHub Actions
,travis-ci
,vercel,Netlify 等都可以便捷的进行博客的部署,只管写代码然后推送就好,类似的教程有非常多,在此就不再重复介绍。那么,我们是否可以在此基础上,更加便捷的进行静态博客的写作和管理?答案是可以的。
我们可以通过将博客部署到 Netlify,并使用 Netlify CMS 来做到这一点。
首先,我们来了解一下配置完之后可以做到哪些事情?
- 在线新建,编辑,预览,删除博客文章
- 支持文章草稿,工作流
- 支持对博客图片的管理
- 支持在线修改博客配置,例如对首页顶部图的修改,友链的修改
🎈图片预览
配置完的界面
在线对文章进行编辑,修改
工作流
对媒体资源的管理
对其他页面的修改
在线修改博客首页、文章页、归档页等页面的顶部图
在线添加、编辑友链页面
🔗在线演示
为了更加直观,做了一个已经配置完毕的博客,你可以在线体验上述功能 👉点我查看
📃简单说明
下面我将会以 Hexo + 做演示,并配置 Fluid 主题的友链功能,达到在线编辑预览友链的目的,但此方法不仅仅只适用于 Fluid 主题的友链功能,其他各类主题也可以通过此方法达到在线修改配置的目的,只要你配置完成,几乎可以修改所有配置项。包括但不限于以下类型的文件yml
、yaml
、toml
、json
、md
、markdown
、html
具体请查看 👉Netlify CMS 文档。
🔧具体配置
Netlify CMS 使用的前提条件是你必须将博客部署到 Netlify 上。因为网上有很多部署教程,这里不再重复。
具体可以查看:
👟准备工作
在部署完成后,你需要开启 Identity
进入设置中
将 Registration preferences
修改为 Invite only
此项为是否开启注册,默认是开启注册。修改为 Invite only
后表示仅受邀请的用户可以注册,当然此项你可以在自己注册完毕之后再行修改。
下滑找到 Git Gateway
并开启。
至此准备工作完成
🎨修改博客配置
在博客根目录中找到
_config.yml
并修改,这一步是跳过文件夹渲染,不然后面会出错
1
skip_render: admin/*
在博客source
文件夹中,创建admin
文件夹,并新建两个文件index.html
和config.yml
在 index.html
中添加以下内容
1 |
|
在 config.yml
中添加如下折叠内容
点击展开配置内容
1 |
|
请注意,这里我对 Fluid 主题进行了配置,例如banner_img
、index_img
等项目,不能正常使用请删除,如果你不是 Fluid 主题请根据实际情况对source\admin\config.yml
配置进行修改,如果你和我一样是 Fluid 主题,还需要将主题配置文件(/_config.fluid.yml
)中的相对应的字段及其内容一并注释掉才能使其生效,类似于这样
并且创建source\_data\fluid_config.yml
,将相关配置复制粘贴到里面(请根据此配置去主题配置文件中注释掉相对应的字段)
点击展开配置内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47index:
banner_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/images/background.webp
banner_img_height: 100
post:
banner_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/banner_img/mmexport1602581319886.webp
banner_img_height: 70
default_index_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/banner_img/wallhaven-g8wvm7.webp
archive:
banner_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/banner_img/wallhaven-q6ov7d.webp
banner_img_height: 80
category:
banner_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/banner_img/wallhaven-zm93dj.webp
banner_img_height: 80
tag:
banner_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/banner_img/wallhaven-1kkm2g.webp
banner_img_height: 80
about:
banner_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/banner_img/wallhaven-pkkr2.webp
banner_img_height: 80
links:
banner_img: https://cdn.jsdelivr.net/gh/leicancun/img@main/banner_img/wallhaven-rddv31.webp
banner_img_height: 80
items:
- title: 小丁的个人博客
intro: 世间所有的相遇,都是久别重逢
link: https://tding.top
avatar: https://tding.top/images/avatar.webp
- title: 米奇妙妙屋
intro: 逐风揽月登九天 踏浪擒龙游四海
link: https://ifibe.com/
avatar: https://cdn.jsdelivr.net/gh/useblue/ucdn/imgs/avatar.webp
- title: 荷戟独彷徨
intro: 爱光学,爱生活,爱创造
link: https://guanqr.com/
avatar: https://cdn.jsdelivr.net/gh/guanqr/blog/static/icons/android-chrome-512x512.png
- title: iMaeGoo’s Blog
intro: 虹墨空间站
link: https://www.imaegoo.com
avatar: https://www.imaegoo.com/images/avatar.jpg
- title: 琉仙の后花园
intro: 一起来种花家呀
link: https://blog.lx101.cn/
avatar: https://z3.ax1x.com/2021/03/28/cS2LNV.jpg
- title: LOGI
intro: 会点代码的强迫症
link: https://logi.im
avatar: https://code.bdstatic.com/npm/logicdn@1.0.0/logi.im/usr/images/global/logo.webp
请保持这样的格式,当然如果你对yml
语法非常了解也可以自行修改🤣
1 |
|
🤣结语
说一下为什么不推荐直接修改根目录下的 _config.fluid.yml
因为通过 Netlify CMS 在线修改配置文件后,仅会保留你已经在 source\admin\config.yml
中配置的选项,没有配置的选项会默认清空,按主题默认配置进行,你当然可以将所有选项进行配置,但是没必要,所以推荐通过 source\_data\fluid_config.yml
仅复制粘贴需要的选项进行修改配置。
至此 Netlify CMS 配置就算完成了,只要推送代码,等待片刻,通过你部署在 Netlify 上的域名,加 /admin/
即可访问你的博客后台。
🚀 一键部署
如果你感觉有点繁琐,或者怕配置出错可以直接使用我配置好的一键部署
来快速搭建你的博客👉点击前往
ps: 即使是一键部署也不要忘记准备工作
里的步骤,这很重要
😕 改进计划
因为对 css 不太熟悉,并没有设置页面自适应,导致现在编辑页面的预览体验很差,在手机上显示也不甚理想,等我多熟悉熟悉 css 然后弄一下自适应。
目前对图片并没有自适应,在手机上显示的效果也不算好,因为能力有限折腾了很久没弄明白,官方文档在这里👉点我查看
如果能有大佬能帮助我就更好了,十分欢迎各位大佬
😁 感谢
十分感谢 zkqiang 大佬对我的耐心帮助🎉🎉🎉