banxi1988
V2EX  ›  随想

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

  •  
  •   banxi1988 · Dec 9, 2012 · 7986 views
    This topic created in 5086 days ago, the information mentioned may be changed or developed.
    不知道为什么我突然觉得可以搭一个不用数据库的博客。

    最初见到类似的东西,因为是用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 replies  •  2017-04-05 19:22:07 +08:00
    banxi1988
    banxi1988
    OP
    Dec 9, 2012
    1
    这一句后面的东西忘了下了:(因为我自己熟悉html+css+js):所以 我可以不需要可视化啊等等编辑器。直接自己写html的。
    jesse_luo
    jesse_luo
    Dec 9, 2012
    2
    github(或者任何空间)上面用jekyll啊,当然lz的目的应该不是单纯为了记博客……
    自荐一下……
    http://blog.jesseluo.me/blog/2012/blog-on-github/
    banxi1988
    banxi1988
    OP
    Dec 9, 2012
    3
    @jesse_luo 这个github的用jekyll我用过一下下,觉得有点点不习惯,特别是yaml。
    可能有时候我也是想,自己动手来感受作为一个网站需要及功能的进化。
    PS:现在bae是免费的,你的博客可以尝试切到bae上去,哈哈。
    plucury
    plucury
    Dec 9, 2012
    4
    hehe
    hehe
    Dec 9, 2012
    5
    你想的太复杂了

    本机建个txt,随时更新,想给谁看发给谁
    goofansu
    goofansu
    Dec 9, 2012
    6
    可以试试octopress,不过老实说,写出什么样的内容才是最重要的,博客系统一抓一大把
    jacy
    jacy
    Dec 9, 2012
    7
    有不用数据库的博客系统。原来也有很多,比如数据保存在ini文件,xml文件,甚至文本文件。以前为了在路由器上搭博客,减少路由器负担,没在路由器装数据库。
    binux
    binux
    Dec 9, 2012
    8
    如果只是一个文件数据库,那没什么新奇的,还有用文件数据库的论坛呢
    如果抛开各种多用户、权限、扩展、可选项,后台,博客系统本来就没什么难的
    ericFork
    ericFork
    Dec 9, 2012
    9
    想起早年的 ofstar 论坛系统,不知道还有多少人记得这东西……
    banxi1988
    banxi1988
    OP
    Dec 9, 2012❤️1
    10
    @hehe 呵呵,可以发邮件。
    cyr1l
    cyr1l
    Dec 9, 2012
    11
    是的, 博客系统其实很简单的, 我是直接写markdown,转换成html,扔在目录下, 用php去索引,直接css什么的自己定义就行,至于评论系统,用disqus 或者国内的有言,灯鹭什么的社交评论,RSS也是直接php伪造,archive 和tag 也不算难 ,就是ping和trackback不好做。 其他都很还算简单。
    skydiver
    skydiver
    Dec 9, 2012
    12
    Movable Type 就可以的啊。。。直接生成静态页面
    banxi1988
    banxi1988
    OP
    Dec 9, 2012
    13
    @cyr1l 为什么要“我是直接写markdown,转换成html” 而不是直接html。
    我感觉markdown好像主要是为了防止xss和脚本的吧。而出现的吧。
    目前对于markdown是没有多少了解,但是觉得写法的话,用zencoding挺不错的。
    Mutoo
    Mutoo
    Dec 9, 2012
    14
    请问这样的博客如何留言……
    banxi1988
    banxi1988
    OP
    Dec 9, 2012
    15
    @Mutoo 留言直接放在一个对一个对应的文件进行IO。因为一般个人博客,留言的不多。
    cyr1l
    cyr1l
    Dec 9, 2012
    16
    @banxi1988 一样, 就是觉得windows下的那个 markdownpad 挺帅的,还能自定义CSS,同步预览什么的。 感觉很方便。 当然啦, 用编辑器配合zencoding也很好, zencoding真乃前端神器啊。
    ipconfiger
    ipconfiger
    Dec 9, 2012
    17
    试试 https://github.com/ipconfiger/blogen 基于pages构建,简单易用
    MayLava
    MayLava
    Dec 10, 2012
    18
    /t/34202 http://haow.in/blogmi/
    试试看符合你的要求不
    reaky
    reaky
    Dec 10, 2012
    19
    https://github.com/reaky/reaky.github.com
    我自己的,将就能用 代码很挫,内容请忽视
    Sammy.js前端路由,结构和楼主的差不多
    banxi1988
    banxi1988
    OP
    Dec 10, 2012
    20
    @MayLava 看了下非常不错。如果有类似需要的人,我会向他们推荐的。
    我想,自己先尝试造下轮子。
    PS:我特别喜欢 V3日记 这个主题。 不知知道如果我模仿的话,有没有版权问题没有?
    MayLava
    MayLava
    Dec 10, 2012
    21
    @banxi1988 这个东西不是我写的。想模仿的话也不会有人追究吧,只是最好不要大段的css或者图片照搬什么的……
    yegle
    yegle
    Dec 10, 2012
    22
    That's called static site generator

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

    万分感谢!
    lucifr
    lucifr
    Mar 22, 2013❤️1
    28
    @trai25 我是部署到自己的 VPS 上了,没用 github 不太清楚
    trai25
    trai25
    Mar 22, 2013
    29
    @lucifr 原来如此,还是感谢:-)
    jlkm2010
    jlkm2010
    Apr 5, 2017
    30
    我用的 sqlite
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4410 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 96ms · UTC 08:17 · PVG 16:17 · LAX 00:17 · JFK 03:17
    ♥ Do have faith in what you're doing.