Hugo的安装很简易,我们只是需要一个二进制文件,提供预构建好的二进制包括 Mac OS X,  Linux,  Windows等.,所以我们可以放很方便的安装,当然我们也可以使用 Go 编译器工具链源码编译 Hugo,比如在其他的操作系统如 DragonFly BSD, OpenBSD, Plan 9 和 Solaris 。 在 http://golang.org/doc/install/source 查看完整的操作系统和编译架构的支持列表。

Hugo安装

我个人的习惯是喜欢在本地搭建一个,然后后续再把文件上传,因为本地调试比较方便,因为我用的是 Windows,就像刚才提到的,我们只需要一个hugo.exe.

  1. 打开Windows的资源管理器
  2. 创建一个文件夹,例如 D:\Hugo
  3. 创建一个子文件夹 D:\Hugo\bin(放置hugo编译好的hugo.exe)
  4. 在bin的同级目录下创建 D:\Hugo\Sites(此目录用于放置网站文件)
  5. 下载文件文件并放置于D:\Hugo\bin
  6. 打开CMD命令行,输入
    set PATH=%PATH%;D:\Hugo\bin
    
  7. 如果输入正确的话,我们查询下,hugo version就可以看到你当前安装的hugo的版本,进入D:\Hugo\Sites,然后输入
    hugo new site name
    
    (这里是你想创建的网站的名字,当然也可以是域名),此时你会在D:\Hugo\Sites目录下看到你刚才创建的名字的文件夹,因为hugo需要整个渲染才可以看到网站的效果,我们可以下载一个主题,我这边用的主题是casper,命令如下:
    cd themes
    git clone https://github.com/vjeantet/hugo-theme-casper casper
    
    主题的具体设置我这边就不说了,hugo的主题网站里面有很多主题和他们具体使用的说明.
  8. 创建一个页面:
    hugo new about.md
    
    如果是博客的文章的话,最好自己做一个归类,比如Post文件,那样的话我们创建页面可以用
    hugo new post/hello-world.md
    
    执行完后,会在content/post目录自动生成一个MarkDown格式的hello-world.md文件,随便编辑一些文字,我们就可以执行
    hugo server -t casper
    
    现在的版本已经可以自动监控文件,所以不需要添加watch参数. 说到这里,windows下简单创建的hugo博客已经完成,我们可以访问http://localhost:1313/ 来查看.
    centos我们可以安装.rpm
    wget https://github.com/spf13/hugo/releases/download/v0.16/hugo-0.16-2.el6.x86_64.rpm
    rpm -ivh hugo-0.16-2.el6.x86_64.rpm
    hugo version #查看hugo版本
    
    Debian&Ubuntu我们可以安装.deb
    wget https://github.com/spf13/hugo/releases/download/v0.16/hugo_0.16-1_amd64.deb
    dpkg -i hugo_0.16-1_amd64.deb
    hugo version #查看hugo版本
    
    以上全是64位的版本..后续过程等同于windows.但是我们总不能在vps运行调试,所以我们需要把它生成html,用到的命令:
    hugo –theme=casper –baseUrl=“http://域名/”
    
    过程中会生成一个pubilc的文件夹,我们只需要把网站的主目录指向该文件夹就可以.
    目录下的文件说明:
    archetypes\default.md #生成文章的模板
    conten* #文章MD存放位置
    data\authors\name.yml #作者介绍
    static\images #网站图片存放
    themes #主题目录
    

Dropbox同步

上面的过程涉及到每次更新我们需要连接SSH到VPS,然后上传.md文件,并重新生成一次public文件夹.其实倒不是很麻烦,但是毕竟每次这么做也挺恶心的,hugo国内用的人貌似不是很多,所以百度来,谷歌去的基本没看到什么教程来使用Dropbox同步,不过倒是看到一篇我以前用的hexo的同步,安装过程自己摸索了下,感谢用Hexo+Vps搭建博客并用Dropbox同步自动发布.
环境.Cenots6.4 x64

  1. Dropbox可能存在中文文件,所以我们先安装语言包
    yum -y update
    yum groupinstall “Chinese Support”
    nano /etc/sysconfig/i18n
    修改成
    LANG=“zh_CN.utf8”
    SUPPORTED=“zh_CN.UTF-8:zh_CN:”
    SYSFONT=“latarcyrheb-sun16”
    #重新登陆一下就可以看到中文了
    
  2. 安装epel
    yum repolist #查看是否有epel字样,如果没有我们如下安装
    #导入epel的KEY
    sudo rpm –import http://download-i2.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
    #32位
    sudo rpm -Uvh http://download-i2.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    #64位
    sudo rpm -Uvh http://download-i2.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    yum install yum-priorities
    yum repolist #正确安装了就可以看到epel
    
  3. 安装Dropbox
    #32位
    cd ~ && wget -O - “https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
    如果下载没反应则使用
    cd ~ && wget -O - https://www.dropbox.com/download/?plat=lnx.x86 –no-check-certificate | tar xzf -
    #64位 cd ~ && wget -O - “https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
    如果下载没反应则使用
    cd ~ && wget -O - https://www.dropbox.com/download?plat=lnx.x86_64 –no-check-certificate | tar xzf - ~/.dropbox-dist/dropboxd #首次启动需要验证,我们只需要把链接复制到浏览器,然后登陆你准备同步hugo的dropbox账户 需要说明的是,如果后续想改账户的话,我们需要执行: remove dropbox rm -rvf ~/.dropbox ~/.dropbox-dist #把之前关联账户的信息全部删除 然后重新运行 ~/.dropbox-dist/dropboxd #关闭 我们可以选择同步过滤 killall dropbox #下载官方提供的 cli 来控制和管理Dropbox wget https://linux.dropbox.com/packages/dropbox.py #更改权限: chmod +x ./dropbox.py #查看帮助: ./dropbox.py help #启动Dropbox: ./dropbox.py start #加入到自启动: ./dropbox.py autostart #关闭局域网广播: ./dropbox.py lansync n #Cenots下我们需要自己加入开机启动 nano /etc/rc.d/rc.local #加入 /root/dropbox.py start #如果这里设置了没有开机启动,那么我们使用 nano /etc/profile #加入 /root/dropbox.py start #应用 source /etc/profile #添加过滤文件夹 根据自己的文件夹设置 ./dropbox.py exclude add ~/Dropbox/nyko/
  4. 安装nginx或者面板来解析域名和创建网站,这一步网上很多,我就不多说了。
  5. 安装rsync
    yum install rsync #用来同步VPS里面的文件夹
    
  6. 安装incron
    #安装 incrond
    yum install incron
    #加入开机自启动
    service incrond start
    chkconfig incrond on
    #监控配置
    #修改incrond的默认编辑器为nano
    echo ‘editor = nano’ >> /etc/incron.conf
    #编辑配置
    incrontab -e
    #配置简介
    /root/Dropbox/content/post IN_MOVE bash /root/runhugo.bash
    #这里的意思是 如果post文件夹里面的文件有添加或者删除就会出发后续指令.因为我们搭建好hugo后基本就是文章的添加或者删除,当然我们还可以用别的动作来监控,如下:
    IN_ACCESS,即文件被访问 IN_MODIFY,文件被 write IN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等 IN_CLOSE_WRITE,可写文件被 close IN_CLOSE_NOWRITE,不可写文件被 close IN_OPEN,文件被 open IN_MOVED_FROM,文件被移走,如 mv IN_MOVED_TO,文件被移来,如 mv、cp IN_CREATE,创建新文件 IN_DELETE,文件被删除,如 rm IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己 IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己 IN_UNMOUNT,宿主文件系统被 umount IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO) #注:上面所说的文件也包括目录。 #当然这些监控的动作是可以同时的,例如:
    /root/Dropbox/content/post IN_MOVE,IN_MODIFY,IN_CREATE,IN_DELETE bash /root/runhugo.bash #runhugo.bash脚本 #!/usr/bin/env bash exec 200<$0 flock -n 200 || exit 1 sleep 10 cd /root/Dropbox && hugo –theme=casper –baseUrl=“http://域名/” && rsync -a –delete /root/Dropbox/public/ /home/wwwroot/web/ #说明 #/root/Dropbox 这个是hugo的根目录 #rsync 把public文件夹同步到网站的根目录 #/root/Dropbox/public/ hugo生成的网站目录 #/home/wwwroot/web/ 网站根目录
    我自己已经测试成功啦,所以我们以后写完文章只要把.md文件放到Dropbox里面的content/post文件夹下,hugo就会自动生成新的网站了,包含了你的修改..