因为自从新博客建立以来,一直使用Octopress作为博客框架构建静态文章页面。漂亮的默认主题,方便的发布到githubpage等功能吸引了我,不过最近因为家里用的是Macbook,刚升级到新版的Sierria,悲剧的是之前安装的Octopressbundle失效了。调试了半天,环境还没搭建好。此外,我发现Octopress的Markdown解析器报错,所以我决定更换一个配置和安装更简单的博客生成器。参考了staticgen这个网站的各种生成器后,果断选择了Hugo。没有什么特别的原因,下载安装试试看就可以了。由于Hugo是用Go语言编写的,所以只需要下载官方的二进制可执行文件,不需要安装各种依赖,然后改源等。这足以让我切换到Hugo主题。由于我还是比较喜欢Octopress的默认主题,所以在阅读了Hugo开发文档后,在严格尊重原主题的原则下修改了一些增强的样式,并做了适配。Hugo的Octopress主题。虽然Hugo官方有一个Octopress适配的主题hugo-octopress,但是我不喜欢它,因为对原来的主题改动太多。迁移后的文章Octopress使用的文章描述头是yaml格式,需要转成Hugo的toml。我手动写了一个NodeJS脚本来完成这个工作,基本上很容易就完成了。注意:建议放在content/archives目录下,这样原文件目录和新文件目录一致,再抱怨md文件名。Octopress默认以生成时间为前缀,如:2016-06-13-name。降价。如果移动到Hugo***链接后还想保持原来的文件名格式,就得去掉这个前缀(name.md),这样排序就乱了。在各种不按创建顺序排序的编辑器和文件夹中显得笨拙和不方便。文章链接考虑到之前写过很多文章,搜索引擎也收录了,所以保持原文章链接格式不变。在Hugo配置文件中添加这段,使用文件名做文章***链接:[permalinks]archives="/:year/:month/:day/:filename/"archiveOctopress默认的存档地址是archives,这个我们可以直接在Hugo博客目录的内容中新建一个名为archives的目录。以后新的文章会基于这个Section:hugonearchives/your-post-name.mdRSSOctopress默认是atom.xml,但是Hugo中默认是index.xml。但是,我们可以在Hugo中做一个配置,一致的是:RSSUri="atom.xml"但是在实际测试中,在模板中调用{{.RSSlink}}总是返回index.xml。手动将模板中的RSS链接更改为{{.Site.BaseURL}}atom.xml真的有效吗?!这可能是Hugo中的一个错误。还好被发现了,不然新旧订阅RSS地址不一样就更麻烦了。paginationOctopress默认的格式是posts/2,而Hugo中的posts/2还需要添加一个配置:paginatePath="posts"Hugo的几个基本概念这些概念主要是在修改主题的时候用到FrontMatter类似于markdown的文件的配置描述,用于配置文章的标题、时间、链接、分类等元信息,提供给模板调用+++title="posttitle"description="description."date="2012-04-06"tags=[".vimrc","plugins","spf13-vim","vim"]categories=["cat1","cat2"]+++Sections是一个内容下的一级目录,通常带有分类的概念,只是文件夹维度的物理隔离。如果文章没有指定类型配置,则该文章默认属于当前版块。类型可以在FrontMatter中指定,但Section不能。Archetype创建新文章时的默认模板将具有指定的模板。FrontMatterheadersTaxonomycategories,tags,series等文章属性的描述都属于TaxonomyTerms总结Hugo确实是一个不错的博客框架,配置简单,功能强大。很多东西都是“约定”默认提供的,比如内置的TableOfContents,它也被用于写博客。但是因为是用Go语言写的,很多人不知道有这么个好用的东西,所以社区不是很好。这可能就是所谓的编程帮派理论吧!【本文为专栏作家周启礼原创稿件,转载请注明出处】点此阅读更多该作者好文
