安装

1.安装hugo
hugo是一个快速的静态网站引擎,使用Go语言开发,可以用Markdown格式的文章生成一个完整的静态网站,然后托管到自己的用户名.Github.io的Github仓库中,实现一个静态站点,一般用于博客或者项目主页等,先从官网下载(mac机器上可以直接用brew install hugo) 安装完成hugo,然后使用huge new site blog-name,进入blog-name可以看到如下结构: ▸ archetypes/
▸ content/
▸ layouts/
▸ static/
config.toml
添加about.md到目录中,执行命令:hugo new about.md,产生的about.md存在content文件夹中
添加第一条blog文件到目录中,执行命令:hugo new post/你的blog的文件名.md(注意:hugo命令必须在根目录执行,否则会报错)

2.安装主题
hugo可以自己配制主题,在blog-name文件夹中创建themes,然后将主题文件夹放到themes中
目前hugo的github收录了很多主题列表: https://github.com/spf13/hugoThemes, 可以git clone 你想要的主题
目前我的blog使用的主题:git clone https://github.com/coderzh/hugo-pacman-theme

3.修改config.toml配置
hugo的配置可以使用json(config.json),yaml(config.yaml)和toml(config.toml),一般都采用toml,本博客配置如下:

BaseURL = "http://linkxzhou.github.io/" # 站点的名称
LanguageCode = "zh-CN" # 使用编码
HasCJKLanguage = true
Title = "linkxzhou的博客" # 大标题
Theme = "none" # 暂无
pygmentsStyle = "default"
pygmentsUseClasses = true
RSSUri = "feed.xml" # rss的订阅数据

[Author]
  Name = "linkxzhou" # 作者

[Params]
  AuthorHomepage = "http://linkxzhou.github.io"
  Author = "linkxzhou"
  BottomIntroduce = "不负春光,野蛮生长"
  Description = ""
  Subtitle = "一个追求技术的偏执者"
  Imglogo = "img/logo.svg"
  AuthorImg = "img/author.jpg"
  # 日期时间格式
  DateFormat = "2006年01月02日"
  MonthFormat = "2006年01月"
  FancyBox = true

启动

测试环境查看blog:

hugo server --theme=hugo-pacman-theme --buildDrafts --watch -d ./dev
--theme 使用主题,对应到themes文件夹目录
--buildDrafts 构建暂时不发布的markdown,根据markdown的draft判断(true -- 草稿文件,false -- 生成站点文件)
--watch 监听文件变化,文件变化后网页上自动变化
-d 目标文件 生成对应的发布github目录文件‘
// 其他命令
--port=80 // 绑定端口
--bind=0.0.0.0 // 绑定ip

生成文件到github发布目录命令:

sudo hugo server --theme=hugo-pacman-theme --baseUrl='https://linkxzhou.github.io' --watch --port=443 -d ./public

发布文件中犹豫baseUrl需要替换为github路径,所以需要注意几点: 1.添加baseUrl,如:–baseUrl=‘https://linkxzhou.github.io'
2.url修改为https,现在github都是https的链接
3.设定对应的绑定端口,http设定port=80,https设定port=443

发布github

1.创建github目录文件
在github中New reository,用户名一定要用:你的注册用户名.github.io,其他无需修改,然后点击Create repository即可
2.github本地文件提交

// 1.设置配置
git config --global user.name "你的注册用户名"
git config --global user.email "你的邮箱"
git config --global color.ui auto
// 2.设置生成的ssh key
ssh-keygen -t rsa -C "你的邮箱"
要求输入存储id_rsa的目录,接着是输入密码,这个密码可以与github的不同,过程中确认即可,
最后会出现一个随机图形,说明生成SSH密匙成功,这样需要到刚刚的存储目录下打开id_rsa.pub复制里面的内容,
到你的github页面上->点击右上角头像旁三角->settings->SSH keys->add SSH key->黏贴刚刚复制的内容保存
// 3.初始化与提交github
cd public
git init
git remote add origin https://github.com/用户名/用户名.github.io.git
git add -A
git commit -m "提交注释"
git push -u origin master
// 4.修改文件提交
git add -A
git commit -m "提交注释"
git push -u origin master

注意:提交github可能存在一些未知问题,但是一般能找到相应的答案(在此不详细解答)

hugo写markdown文件规范

文件头部格式:

+++
Categories =["github"]
Tags = ["github", "开发者", "go"]
date = "2017-02-12T18:20:42+08:00"
title = "hugo搭建github博客过程"
description = "111"
+++
  • 1.title 文章名称
  • 2.description 文章详细介绍
  • 3.tag 标签
  • 4.categories 文章分类

在 +++ 与 +++ 中写完规范以后,然后可以添加markdown格式的正文内容(markdown格式文件暂时不介绍,可以参考https://segmentfault.com/markdown)

注意:

可能大家有自己的公众号,那么如何将markdown转换为微信的编辑格式呢?
最快捷的方法:使用http://mahua.jser.me,在右侧生成对应的文章以后直接复制到微信的文章中,可以不改变样式;
比较完整的方法:参考http://www.jianshu.com/p/b09125018c04

附录

(1)git clone 命令

git clone <版本库的网址>
git clone <版本库的网址> <本地目录名>
# 支持多种协议
$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

(2)git remote

git remote # 命令列出所有远程主机
git remote -v # 远程主机的网址
git remote show <主机名> # 查看该主机的详细信息

(3)git fetch

git fetch <远程主机名> <分支名> #取回所有分支(branch)的更新
git fetch origin master #取回origin主机的master分支
git branch #命令的-r选项,可以用来查看远程分支,-a选项查看所有分支
git checkout -b newBrach origin/master #取回远程主机的更新以后,可以在它的基础上,使用git checkout命令创建一个新的分支
git merge origin/master 或者 git rebase origin/master # 在本地分支上合并远程分支

(4)git pull

git pull <远程主机名> <远程分支名>:<本地分支名> #git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并
git pull origin next:master #取回origin主机的next分支,与本地的master分支合并
# 在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking);比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动"追踪"origin/master分支;
# 加上参数 -p 就会在本地删除远程已经删除的分支
$ git pull -p
$ git fetch --prune origin 
$ git fetch -p

(5)git push

git push <远程主机名> <本地分支名>:<远程分支名> # 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支
git push origin :master # 等同于 git push origin --delete master
git push -u origin master # 使用-u选项指定一个默认主机
# 如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用--force选项
git push --force origin 
# git push不会推送标签(tag),除非使用--tags选项
git push origin --tags