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

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

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

    大家中秋快乐!不知道今天还有几个朋友在写代码哈哈,国庆期间试着撸了个静态博客工具 ,基本功能已经好了,欢迎一起交流 : 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 支持一下吧~
    MrRabbit
        8
    MrRabbit  
       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   ·   实用小工具   ·   5587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:46 · PVG 14:46 · LAX 22:46 · JFK 01:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.