胡搞一个博客

hugo简介

git简介

生成本地站点

首先创建一个新的本地站点,命名为knightwupz-hugo:hugo new site knightwupz-hugo 。切换到新站点目录里:cd knightwupz-hugo

创建一个新的页面“about”: hugo new about.md

再创建一个新的页面“post/first”: hugo new post/first.md

注意hugo new命令创建的页面都位于content目录里。

查看页面内容: cat content/post/first.md, 已经自动生成了如下内容:

1
2
3
4
5
6
+++
date = "2017-04-29T15:06:24+08:00"
draft = true
title = "first"

+++

此时可以自由编辑新创建的“first”文件内容,使用markdown格式。

在hugo 的github网站上下载网页模板:

1
2
cd themes
git clone https://github.com/digitalcraftsman/hugo-icarus-theme.git

启动本地调试查看效果: hugo server --theme=hugo-icarus-theme --buildDrafts --watch

在浏览器中打开网址即可查看本地站点的内容:http://localhost:1313/

将本地站点资料同步到github仓库

这一步主要是方便以后的资料管理,比如可以在不同的笔记本上分别编辑不同的文件,并保持内容同步。 参考:https://gohugo.io/tutorials/github-pages-blog/ 。 1. 在github上“-hugo”仓库用于存储本地站点资料。 2. 在本地站点根目录下初始化git仓库:git init 3. 查看本地内容改动:git status 4. 将改动文件添加到本地git仓库:git add xx_files,并添加改动评语:git commit -m '20170429 test my hugo websites' 5. 将本地仓库与github远端仓库链接起来:git remote add origin https://github.com/knightwupz/knightwupz-hugo 6. 将本地仓库同步到远端仓库:git pull origin master

将本地站点资料部署到github-page

  1. 在github网站上创建一个“.github.io”仓库用于存储静态网站页面。
  2. 进入本地站点根目录,确认本地站点运行正常:hugo server -t <yourtheme>
  3. 确保没有问题之后,ctrl+c退出本地服务器,并清除public目录内容:rm -rf public
  4. 使用git submodule功能将public目录连接到github-page页面:git submodule add -b master git@github.com:knightwupz/knightwupz.github.io.git public
  5. 使用deploy.sh脚本自动实现自动部署:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    #!/bin/bash
    
    echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"
    
    # Build the project.
    hugo -t hugo-icarus-theme # if using other themes, replace by `hugo -t <yourtheme>`
    
    # Go To Public folder
    cd public
    # Add changes to git.
    git add -A
    
    # Commit changes.
    msg="rebuilding site `date`"
    if [ $# -eq 1 ]
        then msg="$1"
    fi
    git commit -m "$msg"
    
    # Push source and build repos.
    git push origin master
    
    # Come Back
    cd ..
  6. 更新网站并提交评语:./deploy.sh "Your optional commit message" 7.