我觉得博客站里的内容主要有两种展现形态。
一种是文章,有头有尾,长篇大论,输出观点,阐述事实。
一种是动态,即兴发挥,图文为主,类似朋友圈动态,碎片化。
文章好说,所有框架都能满足,无非就是把文章文件(markdown)放在项目里,然后编译出来,再部署。
把动态加入进去,也许用Memos(指和Memos类似的开源作品)作为数据来源是个不错的选择。
那既然能做博客上的动态页,是不是也能给其他站点作为数据源呢
都说前端卷,天天造轮子,天天撕逼,堪比娱乐圈。
我学的速度还没框架更新速度快。
那卷之后有什么好处呢?
我觉得最大的好处就是有工具、插件、模板等大量的半成品可供我们选择。
然而最大的坏处就是:太大量。
所以说真别乱喷人家造轮子的。造完了,好用,咱不也得用吗?
2024年了,能建博客站点的框架实在是太多。每个框架的模版又非常多。
要是真挨个挑选下来,我估计我这文章也不用写了,时间全浪费在 选择 上了。
所以我也不推荐什么框架了,萝卜青菜各有所爱,选了之后还是要写文章才有意义。
但是呢,这个非常繁琐的选择过程,让我产生了一个想法。
刚才说到,前端框架卷的狠,产出多。
所以现在就有了一个问题:只了解了Vue
、React
、Node
,这不足以让我直接做出东西来。
就必须还得有个开发模板,有人帮我用Webpack
、Vite
搭建好了项目,再帮我配置好一些基本的功能,像什么前端的router
、store
、Tailwindcss
,Node的middleware
、orm
、jwt
等等。
配好了还只是第一步,Node版本合不适合,框架版本新不新,数据库用的啥等等类似问题还有很多。
所以,我去哪里找这些合适的模板呢?
没有的话要不我搞一个导航站?
==我寻思着肯定已经有人做过这种类似的导航站了,但是确实没推广到我脸上来。==
所以,我在准备开始这个导航站前,还是先捋了捋功能点(前端页面),捋了捋需要哪些接口(后端接口),怎么管理这些数据(管理系统)。
但是捋完之后,肉眼可见的,开发成本太高了。
还没怎么开始我就不想做了。
于是我开始做减法,前端页面尽量简洁,后端功能尽量简单,管理系统够用就行。
然后你懂得,开始之后总会有各种各样的阻碍卡住。
所以我觉得还是要再做减法。
我用我当前的认知继续思考。
我做一个后端服务,是为了给我的前端页面提供接口以及保存和获取数据。
至于数据怎么存,表结构合不合理其实无所谓。
甚至数据安不安全也不重要,我写出来就是给别人看的,没有私密信息。
我能不能找个现成的后端服务为我提供数据录入和数据获取接口,我只需要写写前端代码,调调接口就行了呢。
所以说 Memos
貌似能满足我的要求。
Memos
是我用docker
直接部署到云服务器上的,现成的开源项目,我不用写代码。
也提供了一个前端界面,可以录入文本,可以发图片,可以生成可管理的Access Tokens
用于接口请求。
这就相当于,我在Memos
写东西,就是在给前端提供数据,只要前端通过接口拿到一条Memo后,能根据某种规则解析出内容即可。
我在Memos打个导航
的Tag开始发上几条Memo,然后前端获取导航
相关Tag的Memos,再把内容以另一种形式呈现出来。这不就是我想要的效果么?
甚至我在Memos再发点有关其他品类的Memo,比如植物,那前端再换一种方式展示出来,这不又是一个养花养草的科普站点?
果然,前端页面也是个换皮的游戏。
一套数据,换个皮,换个交互,就是另一个App了。
博客用NextJS
的模板搭建。模板是tailwind-nextjs-starter-blog
。
博客的文章部分,还是用传统的方式,把md文件
放在项目中,然后build
,docker
部署
动态部分,自己新开一个页面,用Fetch
去请求自己Memos服务的接口,筛选出想要展示的Memo。
导航站(如果还做的话),也是用Memos录入,打上指定Tag和权限,在前端获取后,写好一套解析规则,比如Markdown的里一级标题就是title
字段,内容标签也区分开来等等。
这样,Memos就是我的数据录入平台+接口服务+后台管理系统,不需要开发,0成本。
Memos的使用方面。
在电脑端,用Memos的前端页面进行记录。
在手机端,我喜欢在微信里打开H5页面,然后把页面添加到浮窗里。感觉要比使用Memos的App或者小程序要舒服很多。(不过要用https,不然时间长了可能会禁止访问)
最后,要生产其他展示类的站点,就可以直接使用Memos里的数据,先把网站做出来,后续觉得有搞头的话,再把必要的后端服务具体实现出来。没人访问的话,只建一个前端也花不了几天,成本比较小了。
然后涉及到数据,记得时常备份,被人攻击就重启+恢复备份。
或者再给Memos限制一下只接受来自 47.xx.xx.xx 等ip的请求,也可以避免一下被人操作Memos,因为Memos的Api是公开的,别人很容易就知道你创建和删除Memos的接口。
或者,在本地把Memos请求下来保存到文件里,直接把页面用Next编译成静态网站再发布,对于数据更新不太频繁的网站也是可以的。
或者,自己在服务器加一层中间层,请求方式改为请求中间层,这样别人就不知道你创建和删除接口是怎么调用的了。
当然,如果定时备份的话,自己再恢复也可以的。
做好基本的基建工作后,后续优化我觉得就是把记录这件事再简化,做到随手可记。
作为手动码字录入,Memos已经是挺方便了,我打开微信就能记录。
进一步增加录入方式,大概是再加个浏览器插件,在网上冲浪的时候,看到想要记录的内容,选中后弹出个表单,简单填写后,直接通过Memos的接口录入进去。
文章的话,也是需要一个脚本,在本地写完后,一键发送到博客项目的文章目录下,再触发一下部署动作。
当然这一切对于非开发者来说,可能最大的问题是:没有现成的好用的工具。
能做出来给你用的,不一定好用,但一定收费。
而为爱发电的,虽然不收费,估计也受众也小,也懒得大力推广。
ok,这就是全部内容啦。
不知道对你有没有帮助呢?
欢迎一起来讨论~