hugo

自己创建 hugo 主题

2019-07-26

hugo 作为一个很受欢迎的静态网站生成工具,其核心只是将网站的内容结构化,然后通过主题(theme)来 渲染这些结构化的数据,这样就可以非常灵活的修改网站的展示层。许多网友都贡献了 hugo 主题,当然最适合你自己的还是需要 do it youself,下面就开始吧。

hugo

hugo 快速入门教程

2019-07-24
创建项目 cd $HOME hugo new site pystarter.com # Congratulations! Your new Hugo site is created in $HOME/pystarter.com. 使用这个命令创建一个空的站点,pystarter.com 是我自己的网站,使用时按照具体需求修改。 修改网站配置 网站的配置都在 config.toml 中,可以在里面配置网站的标题、语言、主题等等。 首先要根据具体情况修改网站的语言和标题: languageCode = "zh-CN" title = "PyStarter" 安装主题 新建的空项目中没有主题,可以在主题官网 选择一个合适的主题,这里我们使用官方默认的 Ananke。 非常不推荐使用 git submodule 安装主题,感觉这个命令有很大缺陷,添加的时候非常简单,但是后期想移除添加的子模块会很麻烦, 将主题代码 clone 到一个独立的目录中,然后创建软连接,当前这样做有代价,缺点就是在其他机器创建同样的网站测试环境也需要这样手动操作。 将主题下载至独立的目录中,避免使用 git submodule: cd $HOME mkdir hugo-themes && cd hugo-themes git clone https://github.com/budparr/gohugo-theme-ananke.git 回到网站目录中,创建主题软连接,hugo 会在 themes 目录中寻找主题目录: cd pystarter.com ln -s $HOME/hugo-themes/gohugo-theme-ananke theme/ananke 最后修改配置文件 config.
hugo

hugo 站点发布流程

2019-07-24
先说下常规的部署流程: 删除旧的发布文件 执行hugo名称生成发布文件 将发布文件复制到一个独立的目录 提交 git commit 登录服务器执行git pull 其中因为 hugo 生成发布文件时,不会删除旧的文件,如果我们在写文章过程中有删除操作,必须手动删除原有的发布文件。 git submodule 十分不成熟,为了避免污染主仓库,我们新建一个仓库用户放置发布文件,git 不允许两个仓库处于目录包含结构中。 懒惰是程序员的美德 可以看到常规的发布流程很繁琐,这明显不符合 “懒惰是程序员的美德” 宗旨,我们要简化这个流程。 首先想象最简单的发布流程,包含两个操作:提交 和 发布。 选用 python 的 fabric 库,来对这两个操作实现自动化。 提交 publishdir = '../pystarter.com-publish' with ctx.cd(publishdir): ctx.run('rm -rf *') ctx.run('hugo -d {}'.format(publishdir)) with ctx.cd(publishdir): ctx.run('git add .') comment = 'auto commit at ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") ctx.run('git commit -m "{}"'.format(comment)) ctx.run('git push origin master') 这里对环境有要求: publishdir 必须存在,且是合法的git目录,并且已配置了remote。 发布 webserver = 'pystarter' webroot = '/var/www/pystarter.