如何搭建不用数据库的博客

2012-12-09 22:09:06 +08:00
 banxi1988
不知道为什么我突然觉得可以搭一个不用数据库的博客。

最初见到类似的东西,因为是用github的page来搭建简单的个人博客吧。

昨天晚上睡觉的时候想了想。
(1)作为见证自己成长经验,搭建一个自己的blog还是很有必要的,虽然已经有了这么多的社区有博客功能。
(2)不知道对于一个blog站点来说,数据库访问跟直接文件IO性能差别大吗?
(3)原始想法如下:
一个按年月的blog目录,里面放html。
一个category目录里面放blog目录对应类别记录。
一个archive目录方便按年月归档blog。
一个保持目录结构与内容同步的脚本 。
基本目录结构如下:
banxi1988@banxi:~/work/jblog$ tree
.
├── archive
│   └── 2012
│   ├── 11.json
│   └── 12.json
├── blog
│   └── 2012
│   └── 12
│   └── How_to_learn_python.html
└── category
├── android.json
└── java.json

6 directories, 5 files
banxi1988@banxi:~/work/jblog$


例如:python.json文件中以json格式保存python分类下的文章的索引信息。
如[
{"category":"python","path":"2012/12/How_to_learn_python.html"}
]
archive中的结构类似。

每次创建博客时,(因为我自己熟悉html+css+js),
用一个交互式的脚本:
可以输入:博客中文名,博客英文名(space replace with '_')
输入类别。
然后就可以创建blog html文档的时候,将此blog的信息根据类别在category中对应记录
文档中添加一项。根据创建的日期在archive中对应的文档中添加一项。

(4)一些其它的思考:
就按我一个月写5篇blog一年有60左右。
10年600左右。一个blog(不算图片)50K计,600个也就一点点东西。就是要做全文搜索也是so easy的。
关于评论:由于个人博客,一般评论什么的不多。所以
加一个commets来存储对应的blog的评论。评论的时候也是直接文件IO读写。

用一个定时脚本,每天根据需要构建一次相关页面。

(5)突然感觉又回来了,这不就是一个html文档吗?
nosql?

欢迎提出你的看法。
6552 次点击
所在节点    随想
30 条回复
MayLava
2012-12-10 10:17:46 +08:00
@banxi1988 这个东西不是我写的。想模仿的话也不会有人追究吧,只是最好不要大段的css或者图片照搬什么的……
yegle
2012-12-10 12:18:23 +08:00
That's called static site generator

If you know Ruby, use jekyll. If you are more familiar with Python, use Pelican.
hpyhacking
2012-12-10 12:42:49 +08:00
Jekyll 系列的都可以
lucifr
2012-12-10 12:49:24 +08:00
看好 hexo,nodejs 生成起来比 Ruby 的 jekyll/octopress 快得多,虽然目前还有些 bug,但日常用应该没太大问题 http://zespia.tw/hexo/
greatghoul
2012-12-10 12:51:19 +08:00
我现在用这个搭,效果不错。python的。
http://posativ.org/acrylamid/
ispinfx
2012-12-10 13:20:07 +08:00
node.js的推荐hexo,emacs的推荐org-pages http://www.v2ex.com/t/53456
trai25
2013-03-21 23:45:28 +08:00
@lucifr 我就是看了兄台的博客才想换成Hexo的,但遇到些问题想请教下,在最后deploy的环节报错说连接不上这个项目,让我确认项目是否已经建立并拥有权限,弄了很久也没弄好,也搞不清楚原因,SSH KEY也重新弄了还是没进展,想请请教兄台是否知道这种情况是什么原因,又该怎么解决呢?http://trai25.github.com 这个项目本来是Octopress,因为Hexo没弄好,现在只能暂时恢复到Octopress了。

万分感谢!
lucifr
2013-03-22 09:57:53 +08:00
@trai25 我是部署到自己的 VPS 上了,没用 github 不太清楚
trai25
2013-03-22 10:10:00 +08:00
@lucifr 原来如此,还是感谢:-)
jlkm2010
2017-04-05 19:22:07 +08:00
我用的 sqlite

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/54504

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX