2016年10月12日
安装
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 clonehttps://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 =trueTitle ="linkxzhou的博客"# 大标题Theme ="none"# 暂无pygmentsStyle ="default"pygmentsUseClasses =trueRSSUri ="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 --globaluser.name"你的注册用户名"git config --globaluser.email"你的邮箱"git config --globalcolor.ui auto// 2.设置生成的ssh keyssh-keygen -t rsa -C"你的邮箱"要求输入存储id_rsa的目录,接着是输入密码,这个密码可以与github的不同,过程中确认即可,最后会出现一个随机图形,说明生成SSH密匙成功,这样需要到刚刚的存储目录下打开id_rsa.pub复制里面的内容,到你的github页面上->点击右上角头像旁三角->settings->SSH keys->add SSH key->黏贴刚刚复制的内容保存// 3.初始化与提交githubcdpublicgit initgit remote add origin https://github.com/用户名/用户名.github.io.gitgit add -Agit commit -m"提交注释"git push -u origin master// 4.修改文件提交git add -Agit 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 clonessh://example.com/path/to/repo.git/$ git clonegit://example.com/path/to/repo.git/$ git clone /opt/git/project.git$ git clonefile:///opt/git/project.git$ git clone ftp[s]://example.com/path/to/repo.git/$ git clonersync://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 originnext: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 mastergit push -u origin master# 使用-u选项指定一个默认主机# 如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用--force选项git push --force origin# git push不会推送标签(tag),除非使用--tags选项git push origin --tags