Yohe,自己动手撸一个静态博客生成器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
laoqiren
V2EX    Node.js

Yohe,自己动手撸一个静态博客生成器

  •  
  •   laoqiren 2017-10-04 15:41:19 +08:00 6223 次点击
    这是一个创建于 3007 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家中秋快乐!不知道今天还有几个朋友在写代码哈哈,国庆期间试着撸了个静态博客工具 ,基本功能已经好了,欢迎一起交流 : https://github.com/laoqiren/yohe


    yohe

    npm npm

    一个静态博客生成器,采用Node.js开发。Yohe = 哟呵,一个会让你发出”哟呵,不错哦“感叹的静态博客生成器。

    线上 demo: http://luoxia.me/yohe_site/

    English doc

    功能

    • 简单易用,快速
    • 本地预览效果
    • 可定制化信息和主题
    • 新建自定义页面,可定制化导航菜单
    • 支持标签,分类,archives,分页等基础设施
    • 支持通过 Github 评论(gitment 支持)
    • 首页可过滤指定分类文章

    安装

    $ npm install yohe -g 

    快速开始

    获取帮助

    $ yohe --help 

    初始化博客

    $ yohe init myblog $ cd myblog 

    该命令会初始化博客目录,包括初始化主题,文章,自定义页面等目录,以及加载默认配置文件

    创建新文章

    $ yohe new <postName> 

    该命令在source/_posts/下新建<postName>.md文件,在这里写作

    渲染博客文件

    $ yohe build 

    该命令会渲染博客到public目录

    本地预览

    $ yohe server 

    该命令会在本地起一个静态文件服务器,端口,子路径等信息可通过config.json配置

    新增自定义页面

    $ yohe page <pageName> 

    该命令会在source/_extra下生成<pageName>.md文件,默认布局为about页面布局

    配置文件

    运行yohe init后会生成config.json,配置说明:

    { "basic": { "title": "My Blog", // 博客标题 "author": "laoqiren", // 博客作者 "description": "爱技术,爱生活", // 个性签名 "root": "" // 博客根目录,当博客网站位于子路径如"http://luoxia.me/yohe_site"时,配置为"/yohe_site" }, "theme": { "highlightTheme": "railscasts", // 代码高亮主题,所有可用主题列表参照"https://github.com/isagalaev/highlight.js/tree/master/src/styles" "per_page": 6,//每页展示的文章数 "filter": ["life","随笔"], // 首页过滤分类文章,比如生活随笔文章不显示在首页列表 "navPages": [ // 自定义导航菜单的页面标题和链接 { "title": "标签", "url": "/tags" }, { "title": "关于", "url": "/about" }, { "title": "生活随笔", "url": "/categories/life/" } ] }, "server": { "port": 3000 //本地预览服务器端口 }, "gitment": { // gitment 评论功能相关配置,gitment 使用教程参照” https://github.com/imsun/gitment “ "owner": "", "repo": "", "oauth": { "client_id": "", "client_secret": "" } } } 

    文章格式规范

    参照下面的例子:

    --- title: Cluster 模块 date: 2016-11-27 tags: [负载均衡,集群,多进程] layout: post comment: true categories: Nodejs --- 

    其中layout默认为post,comment默认为true

    更丰富的配置正在开发中

    如何发布

    Yohe最终渲染结果在public目录,可采用多种方式起一个静态文件服务器,将public目录发布。

    如何修改主题

    目前Yohe的主题功能与Yohe耦合,需要修改主题可以对source/_layoutpublic/assets/进行开发,重新yohe build即可。未来的版本将解耦主题功能。

    其他技巧

    • 关于页面为source/_about/about.md
    • 指定首页过滤分类文章,可以很方便地实现blog in blog
    • 文档名和分类名中的空格用-代替

    TODOs

    • 主题完善
    • archives
    • 统计等功能
    • 更丰富的配置
    • 解耦主题功能
    16 条回复    2017-10-15 09:30:42 +08:00
    niucang
        1
    niucang  
       2017-10-04 16:08:01 +08:00
    よほ, not bad~
    acgnsstech
        2
    acgnsstech  
       2017-10-04 17:59:18 +08:00
    not so good
    hrg520
        3
    hrg520  
       2017-10-04 18:28:53 +08:00
    看着不错!!
    ChristopherCray
        4
    ChristopherCray  
       2017-10-04 18:35:33 +08:00
    嘿嘿嘿
    xcatliu
        5
    xcatliu  
       2017-10-04 19:52:08 +08:00 via iPhone
    哦呼
    luanjia
        6
    luanjia  
       2017-10-04 20:08:47 +08:00
    支持一下!
    laoqiren
        7
    laoqiren  
    OP
       2017-10-04 23:44:41 +08:00
    喜欢的话,赏一个 star 支持一下吧~
    17xh2
        8
    17xh2  
       2017-10-05 05:21:33 +08:00
    哟呵,不错哦
    ibuffalo
        9
    ibuffalo  
       2017-10-05 09:48:46 +08:00
    很不错哟,支持 wordpress 转换吗?
    laoqiren
        10
    laoqiren  
    OP
       2017-10-05 10:42:04 +08:00
    @ibuffalo 目前主题是默认的,正在进行解耦主题开发解耦功能,那样的话,就可以更方便地迁移其他系统的主题啦
    sohu022
        11
    sohu022  
       2017-10-05 10:48:41 +08:00 via iPhone
    相较于 Hexo 等有什么亮点? Hexo 主题和插件生态都那么丰富了
    laoqiren
        12
    laoqiren  
    OP
       2017-10-06 09:45:42 +08:00
    @sohu022 1. 更快 2. 集成了一些常见需求,如首页过滤分类文章,打赏功能等 3. 足够简单,项目代码就那么一点,很容易二次开发。4. 其他亮点还需继续努力开发
    laoqiren
        13
    laoqiren  
    OP
       2017-10-07 09:24:13 +08:00
    额,貌似没法修改文章啊
    laoqiren
        14
    laoqiren  
    OP
       2017-10-13 10:18:00 +08:00
    帖子没法修改,最新版本更加完善,感兴趣可以转[https://github.com/laoqiren/yohe]( https://github.com/laoqiren/yohe)
    smilefishes36
        15
    smilefishes36  
       2017-10-13 11:26:35 +08:00
    哈哈哈来试试~
    laoqiren
        16
    laoqiren  
    OP
       2017-10-15 09:30:42 +08:00
    目前 Archives 已经实现,模板变量已经统一,开发主题更方便啦!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5807 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:08 PVG 10:08 LAX 18:08 JFK 21:08
    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