没啥特别的意义,源于自然风景,天气的名称,像 rain ,thunder ,feng 。。。都是好名称
快速开始
首先下载二进制文件到本地, 然后执行初始化
└──╼ ./snow init mysnow
Welcome to snow 0.1.0.
> Where do you want to create your new web site? [mysnow]
> What will be the title of this web site? [snow]
> Who will be the author of this web site? [snow]
> What is your URL prefix? (no trailing slash) [http://127.0.0.1:8000]
> Do you want to create first page? [Y/n]
这时会生成一个 mysnow 的目录, 进入该目录,然后执行 snow server 就可以访问 http://127.0.0.1:8000/posts/index.html 查看第一篇文章了
└──╼ cd mysnow
└──╼ ./../snow server
INFO Done: Static Processed 0 static files in 39.691µs
INFO Done: Page Processed 1 normal pages in 12.218357ms
INFO Done: Section Processed 1 posts in 12.327303ms
INFO Done: Taxonomy Processed 1 authors, 1 categories, 3 tags in 12.33494ms
INFO Listen http://127.0.0.1:8000 ...
为什么不用 Hugo
有哪些特色功能
支持 orgmode:hugo 也支持,但 snow 用的解析库是我自己写的org-golang,功能少,但对于只把 orgmode 作为标记语言来使用已经足够了
shortcode: 有点像 hugo 的 shortcode ,但支持对渲染后的 HTML 进行修改,比如我有一系列的图片需要添加 fancybox ,传统方式一是自定义 markdown 渲染函数,二是使用 JS 进行处理,而在 Snow 中只需要创建一个 shortcodes/img.html
{%- set show = attr.src %}
{%- set thumb = attr.src + "-thumb" %}
就可以直接生成带data-fancybox的标签
hooks: 虽然很鸡肋,如果要添加插件就得重新编译二进制,但有总比没有的好,有需要的人也可以自己写插件然后单独编译,现在的 shortcode, i18n 等功能都是基于 hooks 实现的, 像是 pelican 的 hook 可以让我不需要修改原来的 .md 或者 .org 文件就能直接使用 Snow, 关于 Go 插件如果有其它想法的可以告诉我
build file: 直接命令行筛选文章,不仅仅是草稿, 比如直接隐藏所有 tag 为 life 的文章
snow server -F 'not ("life" in tags)'
当然,Snow 本身是基于我之前使用 Pelican 的需求,比如 orgmode 的支持,文章加密, 子分类等, 没有太多复杂的功能,如果需要更复杂的功能还是推荐 Hugo,毕竟用的人多,主题也多
如果之前使用的是 Pelican,又对 Snow 感兴趣的可以参考我写的《博客系统从 Pelican 迁移至 Snow 》
开源地址: https://github.com/honmaple/snow