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 |
|
请保持这样的格式,当然如果你对yml
语法非常了解也可以自行修改 🤣
1 |
|
🤣 结语
说一下为什么不推荐直接修改根目录下的 _config.fluid.yml
因为通过 Netlify CMS 在线修改配置文件后,仅会保留你已经在 source\admin\config.yml
中配置的选项,没有配置的选项会默认清空,按主题默认配置进行,你当然可以将所有选项进行配置,但是没必要,所以推荐通过 source\_data\fluid_config.yml
仅复制粘贴需要的选项进行修改配置。
至此 Netlify CMS 配置就算完成了,只要推送代码,等待片刻,通过你部署在 Netlify 上的域名,加 /admin/
即可访问你的博客后台。
🚀 一键部署
如果你感觉有点繁琐,或者怕配置出错可以直接使用我配置好的一键部署
来快速搭建你的博客 👉点击前往
ps: 即使是一键部署也不要忘记准备工作
里的步骤,这很重要
😕 改进计划
因为对 css 不太熟悉,并没有设置页面自适应,导致现在编辑页面的预览体验很差,在手机上显示也不甚理想,等我多熟悉熟悉 css 然后弄一下自适应。
目前对图片并没有自适应,在手机上显示的效果也不算好,因为能力有限折腾了很久没弄明白,官方文档在这里 👉点我查看
如果能有大佬能帮助我就更好了,十分欢迎各位大佬
😁 感谢
十分感谢 zkqiang 大佬对我的耐心帮助 🎉🎉🎉