如何搭建不用数据库的博客 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
banxi1988
V2EX    随想

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

  •  
  •   banxi1988 2012-12-09 22:09:06 +08:00 7035 次点击
    这是一个创建于 4722 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不知道为什么我突然觉得可以搭一个不用数据库的博客。

    最初见到类似的东西,因为是用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?

    欢迎提出你的看法。
    30 条回复    2017-04-05 19:22:07 +08:00
    banxi1988
        1
    banxi1988  
    OP
       2012-12-09 22:10:06 +08:00
    这一句后面的东西忘了下了:(因为我自己熟悉html+css+js):所以 我可以不需要可视化啊等等编辑器。直接自己写html的。
    jesse_luo
        2
    jesse_luo  
       2012-12-09 22:22:47 +08:00
    github(或者任何空间)上面用jekyll啊,当然lz的目的应该不是单纯为了记博客……
    自荐一下……
    http://blog.jesseluo.me/blog/2012/blog-on-github/
    banxi1988
        3
    banxi1988  
    OP
       2012-12-09 22:29:19 +08:00
    @jesse_luo 这个github的用jekyll我用过一下下,觉得有点点不习惯,特别是yaml。
    可能有时候我也是想,自己动手来感受作为一个网站需要及功能的进化。
    PS:现在bae是免费的,你的博客可以尝试切到bae上去,哈哈。
    plucury
        4
    plucury  
       2012-12-09 22:34:44 +08:00
    hehe
        5
    hehe  
       2012-12-09 22:42:50 +08:00
    你想的太复杂了

    本机建个txt,随时更新,想给谁看发给谁
    goofansu
        6
    goofanu  
       2012-12-09 22:44:32 +08:00
    可以试试octopress,不过老实说,写出什么样的内容才是最重要的,博客系统一抓一大把
    jacy
        7
    jacy  
       2012-12-09 22:47:20 +08:00
    有不用数据库的博客系统。原来也有很多,比如数据保存在ini文件,xml文件,甚至文本文件。以前为了在路由器上搭博客,减少路由器负担,没在路由器装数据库。
    binux
        8
    binux  
       2012-12-09 22:50:31 +08:00
    如果只是一个文件数据库,那没什么新奇的,还有用文件数据库的论坛呢
    如果抛开各种多用户、权限、扩展、可选项,后台,博客系统本来就没什么难的
    ericFork
        9
    ericFork  
       2012-12-09 22:52:41 +08:00
    想起早年的 ofstar 论坛系统,不知道还有多少人记得这东西……
    banxi1988
        10
    banxi1988  
    OP
       2012-12-09 23:04:41 +08:00   1
    @hehe 呵呵,可以发邮件。
    cyr1l
        11
    cyr1l  
       2012-12-09 23:06:58 +08:00
    是的, 博客系统其实很简单的, 我是直接写markdown,转换成html,扔在目录下, 用php去索引,直接css什么的自己定义就行,至于评论系统,用disqus 或者国内的有言,灯鹭什么的社交评论,RSS也是直接php伪造,archive 和tag 也不算难 ,就是ping和trackback不好做。 其他都很还算简单。
    skydiver
        12
    skydiver  
       2012-12-09 23:10:05 +08:00
    Movable Type 就可以的啊。。。直接生成静态页面
    banxi1988
        13
    banxi1988  
    OP
       2012-12-09 23:21:05 +08:00
    @cyr1l 为什么要“我是直接写markdown,转换成html” 而不是直接html。
    我感觉markdown好像主要是为了防止xss和脚本的吧。而出现的吧。
    目前对于markdown是没有多少了解,但是觉得写法的话,用zencoding挺不错的。
    Mutoo
        14
    Mutoo  
       2012-12-09 23:22:33 +08:00
    请问这样的博客如何留言……
    banxi1988
        15
    banxi1988  
    OP
       2012-12-09 23:24:07 +08:00
    @Mutoo 留言直接放在一个对一个对应的文件进行IO。因为一般个人博客,留言的不多。
    cyr1l
        16
    cyr1l  
       2012-12-09 23:27:36 +08:00
    @banxi1988 一样, 就是觉得windows下的那个 markdownpad 挺帅的,还能自定义CSS,同步预览什么的。 感觉很方便。 当然啦, 用编辑器配合zencoding也很好, zencoding真乃前端神器啊。
    ipconfiger
        17
    ipconfiger  
       2012-12-09 23:29:35 +08:00
    试试 https://github.com/ipconfiger/blogen 基于pages构建,简单易用
    MayLava
        18
    MayLava  
       2012-12-10 00:50:50 +08:00
    /t/34202 http://haow.in/blogmi/
    试试看符合你的要求不
    reaky
        19
    reaky  
       2012-12-10 07:50:05 +08:00
    https://github.com/reaky/reaky.github.com
    我自己的,将就能用 代码很挫,内容请忽视
    Sammy.js前端路由,结构和楼主的差不多
    banxi1988
        20
    banxi1988  
    OP
       2012-12-10 10:05:44 +08:00
    @MayLava 看了下非常不错。如果有类似需要的人,我会向他们推荐的。
    我想,自己先尝试造下轮子。
    PS:我特别喜欢 V3日记 这个主题。 不知知道如果我模仿的话,有没有版权问题没有?
    MayLava
        21
    MayLava  
       2012-12-10 10:17:46 +08:00
    @banxi1988 这个东西不是我写的。想模仿的话也不会有人追究吧,只是最好不要大段的css或者图片照搬什么的……
    yegle
        22
    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
        23
    hpyhacking  
       2012-12-10 12:42:49 +08:00
    Jekyll 系列的都可以
    lucifr
        24
    lucifr  
       2012-12-10 12:49:24 +08:00
    看好 hexo,nodejs 生成起来比 Ruby 的 jekyll/octopress 快得多,虽然目前还有些 bug,但日常用应该没太大问题 http://zespia.tw/hexo/
    greatghoul
        25
    greatghoul  
       2012-12-10 12:51:19 +08:00
    我现在用这个搭,效果不错。python的。
    http://posativ.org/acrylamid/
    ispinfx
        26
    ispinfx  
       2012-12-10 13:20:07 +08:00
    node.js的推荐hexo,emacs的推荐org-pages http://www.v2ex.com/t/53456
    trai25
        27
    trai25  
       2013-03-21 23:45:28 +08:00
    @lucifr 我就是看了兄台的博客才想换成Hexo的,但遇到些问题想请教下,在最后deploy的环节报错说连接不上这个项目,让我确认项目是否已经建立并拥有权限,弄了很久也没弄好,也搞不清楚原因,SSH KEY也重新弄了还是没进展,想请请教兄台是否知道这种情况是什么原因,又该怎么解决呢?http://trai25.github.com 这个项目本来是Octopress,因为Hexo没弄好,现在只能暂时恢复到Octopress了。

    万分感谢!
    lucifr
        28
    lucifr  
       2013-03-22 09:57:53 +08:00   1
    @trai25 我是部署到自己的 VPS 上了,没用 github 不太清楚
    trai25
        29
    trai25  
       2013-03-22 10:10:00 +08:00
    @lucifr 原来如此,还是感谢:-)
    jlkm2010
        30
    jlkm2010  
       2017-04-05 19:22:07 +08:00
    我用的 sqlite
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5792 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 02:34 PVG 10:34 LAX 18:34 JFK 21:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86