V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shanelau
V2EX  ›  Node.js

ghost 博客开发之路和笔戈科技

  •  1
     
  •   shanelau · 2014-08-14 00:36:02 +08:00 · 7681 次点击
    这是一个创建于 3745 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5月份的时候,我开始接手一个科技博客 [三闻鱼] ,这个博客是php开发部门基于wordpress开发的,维护一直是他们在做,鉴于wordpress强大的功能,php团队重新做了一套主题,然后博客上线了。文章的更新量也比较小,网站基本每日保持着1000左右的访问量。

    ## 博客选择
    我到团队后,开始接手这个项目,尴尬的是,我并不会php,只懂一些皮毛,没做过具体的项目,本人原本做java出道,后来阴差阳错开始全职做nodejs开发。经过几番考虑决定放弃wordpress,用nodejs开发博客,原因大概有以下几点。

    * wordpress已经发展很多年了,代码陈旧,臃肿
    * php不熟悉
    * nodejs开发博客,对于科技博客来说,更加有逼格

    在网络上几经查看后,发现Ghost正符合我的要求,

    * 基于nodejs开源的博客系统
    * tryGhost组织专门开发和维护
    * 完整的官网,较多的文档,非常高的活跃度

    ## 开始开发
    说干就干,clone代码,部署环境,几经周折,项目正式运行了。 当初是0.42版本,
    基本功能测试完以后,发现这个博客还有很多地方不能满足我的需求。主要有以下几点:

    * 单用户,该系统就只支持一个人登录,所有的文章属名都是一个人,还需要展示作者的头像,个人主页
    * 每篇文章不能插入一个图片,作为文章的标题图
    * 不能选择文章类型,所有文章都是一个类型,导致不能分栏目或者做专题
    * 图片压缩,裁剪

    必须要解决的是多用户的功能,作为一个科技博客,不能只有一个作者吧,伤心地去ghost的github页面看他们的roadmap,还好我的英语阅读能力还行,说起也是过了4级的人啊,最新的目标中就有mulit user,可我们不能等啊。只能我来处理了,团队的人员都相信程序员是万能的,好吧,我承认没有搞不定的程序,只有搞不定的妹纸。

    用了一种很搓的方式实现了多用户,将作者的所有信息使用html标签写入文章中,插入数据的时候分析文章内容,读取出作者信息和文章的标识图片。
    修改数据库加入文章类型和文章的位置。最终大费周章,把博客改到我们需要的样子了。基本上把ghost的源码看完了,对前端模板也是完全熟悉了。

    ### 目前的博客地址 [笔戈科技](http://www.bigertech.com)
    主要由文章和视频两个类别,前端使用了不同的页面输出
    主页的文章可以控制位置,选择哪个位置放什么文章。

    下图是Ghost 博客运行10天的内存占用情况
    ![shanelau](http://kissliux.github.io/img/Snip20140812_2.png)

    内存占用有点搞,理论上应该在1G左右趋于稳定的,为什么这几个线程的内存占用区别这么大呢,
    后来对内存占用也做了一番测试,具体的测试情况见另外一篇博客 地址: 还没写 !-_-


    ## Ghost0.5
    这周一(2014.8.11) 一大早刚刚睡醒就收到了ghost发来的邮件,新版本发布了,那叫一个激动啊,期待已久的多用户,和emberjs,脑海中闪过一个个经常的镜头,新的任务,新的体验。
    还好有经验,新版本没几天就基本上搞定了,摸清楚了代码,加入了一些新的功能。
    还在一步步完善中啦, 具体看我们团队的代码仓库吧
    [笔戈博客Ghost代码](https://github.com/bigertech/Ghost/tree/stable)

    开发的目标

    * 文章类别选择
    * 每篇文章加入 文章图片
    * 默认文章url为标题的拼音链接, 修改为数字
    * 文章在界面中的位置指定
    * 点赞功能
    * 多说评论
    * 百度统计

    ## [我的github](https://github.com/kissliux)


    原文地址: http://kissliux.github.io/2014/08/13/ghost-and-bigertech/
    48 条回复    2014-10-19 15:59:31 +08:00
    hjc4869
        1
    hjc4869  
       2014-08-14 01:03:08 +08:00
    以我个人的使用经验来看

    * 单用户,该系统就只支持一个人登录,所有的文章属名都是一个人,还需要展示作者的头像,个人主页
    很久之前github上master branch就支持多用户了,开发版更新比较快。用户可以自行建立static page作为个人主页。

    * 每篇文章不能插入一个图片,作为文章的标题图
    主题中插入{{content words="0"}}即可显示标题图

    * 不能选择文章类型,所有文章都是一个类型,导致不能分栏目或者做专题
    用tag勉强应付一下

    * 图片压缩,裁剪
    本地解决。
    hjc4869
        2
    hjc4869  
       2014-08-14 01:08:09 +08:00
    另外,非常不喜欢多说,我认为disqus非常好用。虽说如此,加入多说也可以只改主题不改核心。

    点赞功能可以有。

    总之开发目标的2,4,6,7都是可以在主题里改。


    BTW,v2ex不支持markdown写作……
    huafang
        3
    huafang  
       2014-08-14 01:11:16 +08:00
    wordpress 代码一点都不陈旧,8年来觉得一直在进步,nodejs 现在和早期wordpress一样,优势是在移动端
    GhostFlying
        4
    GhostFlying  
       2014-08-14 01:14:11 +08:00
    折腾过好几次Ghost,最后还是懒得迁移数据
    kmvan
        5
    kmvan  
       2014-08-14 01:17:49 +08:00 via Android
    不觉得楼主的网站有比wp出众的地方
    GhostFlying
        6
    GhostFlying  
       2014-08-14 01:23:03 +08:00
    不过话说这样跟着改一个目前更新频率很高的项目会不会很坑。。
    hjc4869
        7
    hjc4869  
       2014-08-14 01:42:25 +08:00 via iPhone
    @huafang wordpress确实前途不太光明,除非大量的重构。
    可以参考贴吧里的那篇文章,分析为何wordpress没前途的。
    bombless
        8
    bombless  
       2014-08-14 02:05:26 +08:00
    wp的确不是很漂亮,不过用的时候要写的代码比较少。我相信一个更优雅的方案就意味着你不得不写更多的代码、更陡峭的学习曲线或者更少的功能。反正是要自己权衡了。
    lemonda
        9
    lemonda  
       2014-08-14 02:29:06 +08:00
    导航按钮只有在最顶部才有效,其它位置就变一个白块移动过来了。
    amoblin
        10
    amoblin  
       2014-08-14 07:16:16 +08:00
    赞一个。 笔戈科技主页右上角搜索点击没有搜索框?
    kmvan
        11
    kmvan  
       2014-08-14 07:43:46 +08:00 via Android
    @hjc4869 术业有专攻,如果用wp来弄像微博戓jd的大型网站,那当然是不光明的选择。
    66450146
        12
    66450146  
       2014-08-14 08:13:13 +08:00 via Android
    为什么是新开分支,而不是把代码贡献到 Ghost 主干里面呢?
    xiashali
        13
    xiashali  
       2014-08-14 08:30:51 +08:00 via Android
    不是魅族的一个人做的开着
    xuwenmang
        14
    xuwenmang  
       2014-08-14 08:55:53 +08:00
    @hjc4869

    重构什么?用其他语言?用面向对象?然后不得不面对一堆设计模式?一个博客,走入这些不归路会走火入魔的。

    wordpress每年的周边市场从主题,插件,定制,到托管。。。这个市场有几千万美金吧,为什么要重构?第二名需要作出改变,第一名不需要!

    简单才是这个世界的方向,你心里的那种程序员的小众情节跟商业运营无关!
    a15819620038
        15
    a15819620038  
       2014-08-14 09:04:48 +08:00
    @kmvan 出众和用「ghost」或「wp」没关系吧~
    googlefans
        16
    googlefans  
       2014-08-14 09:21:22 +08:00
    每天有1000的访问量? 你赚了。。
    shanelau
        17
    shanelau  
    OP
       2014-08-14 09:26:16 +08:00
    @hjc4869 看得出你也是对ghost 有深入研究的人。博客之前使用markdown写的, 然后就贴到v2ex里面来的,发现不支持, 哎 懒得改了,凑合看吧。
    * 之前的代码基于stable版本开发的,做了比较多的改动,如果切换到开发包的分支,问题会比较多,所以一直在等他们的stable版本。
    * {{content words="0"}} 这个还真没试过,如果可行,那真是太棒了。
    * 我们的文章和视频需要使用不同的展示界面,比如视频: http://www.bigertech.com/10028/ 所以只能在文章插入的时候,改文章设置类型,前端展示的时候 使用不同的模板咯。 确实使用tag对文章分类和做专题 也是很不错的。
    * 国内的网站都是用多说、友言什么的,他的主题也可以搞定定制,功能也全面,人家也是专心做产品的,感觉还不错吧。 其实我个人也更喜欢 disqus 。
    * 多说自己集成了点赞的功能。 我还在考虑要不要自己做一个
    * 整个开发对前端的改动还是最大。
    shanelau
        18
    shanelau  
    OP
       2014-08-14 09:31:33 +08:00
    @huafang 优势在移动端? 这个是web前端的东西了吧。 当然目前很多很多的网站都是用wordpress搭建的,肯定是经受住市场考验了的,承认wordpress的强大和优秀,不过它确实有点老了。ghost作为新晋者,他还需要很多的成长,nodejs的血统注定了他的不一般。
    shanelau
        19
    shanelau  
    OP
       2014-08-14 09:32:15 +08:00
    @kmvan 还是一个小网站,功能什么的非常不齐全,不过有超越wordpress的信心
    shanelau
        20
    shanelau  
    OP
       2014-08-14 09:36:44 +08:00
    @GhostFlying 迁移数据也没那么复杂的。 多用户出来后,就可以以我们的代码作为主分支了,ghost的更新和改动合并到我们的代码上面来,没有一劳永逸的事情, 不过挑战还蛮大的,如果使用wordpress 改改前端就差不多了
    shanelau
        21
    shanelau  
    OP
       2014-08-14 09:37:32 +08:00
    @lemonda 没有吧,浏览器都测试过的 除非IE6
    shanelau
        22
    shanelau  
    OP
       2014-08-14 09:37:54 +08:00
    @amoblin 搜索功能还没做呢。 设计师说先放一个按钮
    shanelau
        23
    shanelau  
    OP
       2014-08-14 09:39:14 +08:00
    @xiashali 哈哈 就是我啊。 还缺人 有兴趣一起折腾?
    shanelau
        24
    shanelau  
    OP
       2014-08-14 09:41:10 +08:00
    @googlefans 赚什么? 博客的内容都是团队成员原创的。最高的时候PV 有7W, 世界杯期间大概5k 左右,现在1-2k
    shanelau
        25
    shanelau  
    OP
       2014-08-14 09:42:11 +08:00
    @bombless 你说的很对。使用ghost 费了我们不少精力
    haiyang416
        26
    haiyang416  
       2014-08-14 09:44:30 +08:00
    说实话,现在的版本体验远不如之前使用 wordpress 那时候。
    之前那个版本很养眼,还跟人推荐过说这主题做得挺好。
    现在这个各种大图,且不说后台程序如何,这前端设计真真的审美疲劳。
    xiaojay
        27
    xiaojay  
       2014-08-14 09:49:11 +08:00
    楼主blog能加个rss么 :)
    googlefans
        28
    googlefans  
       2014-08-14 09:51:17 +08:00
    @shanelau 哦,网站推广力度是不是不够啊?
    66beta
        29
    66beta  
       2014-08-14 09:59:01 +08:00
    wordpress确实比之前卡了许多,但是从开发角度出发,wp的接口太TMD的全面了!!!
    shanelau
        30
    shanelau  
    OP
       2014-08-14 09:59:46 +08:00
    shanelau
        31
    shanelau  
    OP
       2014-08-14 10:01:02 +08:00
    @haiyang416 大图占满 视觉冲击,设计师要的效果 程序员只能说呵呵
    shanelau
        32
    shanelau  
    OP
       2014-08-14 10:01:31 +08:00
    @haiyang416 你是老用户了啊 点赞
    xiaojay
        33
    xiaojay  
       2014-08-14 10:05:49 +08:00
    yangkeao
        34
    yangkeao  
       2014-08-14 10:13:15 +08:00
    自己在撸博客框架。

    当然没有ghost如此强劲,但是正好可以满足自己的需求。//当然,不要跟我提SEO。
    hjc4869
        35
    hjc4869  
       2014-08-14 10:13:44 +08:00 via iPhone
    @xuwenmang 装在性能一般的VPS上,WordPress对于大访问量甚至不得不加缓存插件才能防止内存被爆,我想能够救它的就只有HHVM了。感觉对于独立博客来说这个程序不太适合。相同条件下用nodejs写的ghost博客就可以承受更大的访问量。
    shanelau
        36
    shanelau  
    OP
       2014-08-14 10:30:27 +08:00
    @xiaojay soga。 这个是基于hexo搭建的。 rss 应该有的,估计是我没配置好。 你有博客没,加个友情链接吧
    shanelau
        37
    shanelau  
    OP
       2014-08-14 10:30:47 +08:00
    @yangkeao 有点犀利
    Mihuwa
        38
    Mihuwa  
       2014-08-14 11:22:44 +08:00
    首屏大图接受不了。整体排版很不错。
    xieren58
        39
    xieren58  
       2014-08-14 12:30:10 +08:00
    魅族?
    shanelau
        40
    shanelau  
    OP
       2014-08-14 13:09:10 +08:00
    @Mihuwa 我也接受不了。 哈哈 ,设计师觉得轮播图太low了,就用了大图冲击的设计, 又得保证图片不变形,只能占满首屏, 体验确实不是很好,不过在手机里面访问就ok了
    shanelau
        41
    shanelau  
    OP
       2014-08-14 13:09:40 +08:00
    @xieren58 惭愧惭愧。
    akn8
        42
    akn8  
       2014-08-14 15:39:07 +08:00
    原来是兴爷
    shanelau
        43
    shanelau  
    OP
       2014-08-14 23:49:31 +08:00
    @akn8 这都被你认出来。。。 哈哈 屌 速度去follow 我的github。 你是小敏?
    shanelau
        44
    shanelau  
    OP
       2014-08-14 23:50:26 +08:00
    已经把ghost 汉化了 嘎嘎
    akn8
        45
    akn8  
       2014-08-15 00:16:11 +08:00
    @shanelau nope,今天你才加了我微信的。
    shanelau
        46
    shanelau  
    OP
       2014-08-15 13:36:58 +08:00
    @akn8 我一天加好多人。。。。 去微信抖一下我
    coffeego
        47
    coffeego  
       2014-10-16 11:43:49 +08:00
    其实我认为楼主换nodejs开发只有一个理由就是不熟悉wp和php,其它的都是伪理由,哈哈
    shanelau
        48
    shanelau  
    OP
       2014-10-19 15:59:31 +08:00
    @coffeego 眼力不错哦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5319 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:09 · PVG 15:09 · LAX 23:09 · JFK 02:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.