博客搭建
需求?
-
采用hexo博客框架,搭建基于github page的博客
-
在博客中可嵌入latex公式
-
实现可迁移更新博客,即可多台电脑同步书写博客
思路?
- 嵌入公式方法采用Mathjax
- 采用github中的分支系统来管理hexo源文件和博客生成文件
环境搭建
-
安装nodejs
-
brew install node
-
遇到问题
Error: The `brew link` step did not complete successfully ... ... You may want to remove it: rm '/usr/local/share/doc/node/gdbinit' To force the link and overwrite all conflicting files: brew link --overwrite node To list all files that would be deleted: brew link --overwrite --dry-run node
先执行
rm '/usr/local/share/doc/node/gdbinit'
再执行
brew link --overwrite node
, 这步可能会遇到权限问题,/usr/local/share/doc/node is not writeable
,这里加入写权限# 这里的路径为上面提示无写权限的路径 sudo chown -R `whoami`:admin /usr/local/share/doc/node
-
测试
>> node -v v12.8.0 >> npm -v 6.10.3
-
卸载方法(不许操作,只是提供方法)
# brew安装的 brew uninstall node # 官网下载的pkg sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}
-
-
安装git(macOSX一般都已自带)
git分支管理与远程github分支管理方法
# 显示分支 git branch -a # 创建分支 git branch [branch name] # 切换分支 git checkout [brach name] # 创建同时切换分支 git checkout -b [branch name] # 删除本地分支 git branch -d [branch name] # 删除远程分支 git push origin :[branch name] # 推送分支到github git push origin [branch name]
-
安装hexo(需先安装好nodejs)
npm install -g hexo
?以上为环境搭建?
实现方法
1 Github部署
github与本地的连接不再赘述,以下认为你已经拥有GitHub账户并连接好本地git。
1.1 创建github page repo
创建新的Repo,Repository name要为账户名加.github.io。例如你的账户名为xxxx,那么Repository name应为xxxx.github.io
1.2 创建分支
为你的Repo创建一个分支,分支用来存储hexo源文件,因此可命名为hexo
创建分支后最好在settings中将hexo分支设为默认仓库,因为需要我们每次手动更新的是hexo分支,而master分支是通过hexo自动部署的。
#####1.3 将仓库clone到本地
git clone git@github.com:xxxx/xxxx.github.io.git
# 因为要在hexo中添加hexo源文件,因此需切换到hexo分支
cd xxxx.github.io
git checkout hexo
1.4 用hexo初始化仓库
# 初始化hexo
hexo init
# 安装hexo的git deployer,hexo自动git的必要工具
npm install --save hexo-deployer-git
#####1.5 部署基本设置
# 设置需要部署的GitHub
# 打开_config.yml编辑
deoloy:
type: git
repo: git@githum.com:excelkks/excelkks.github.io.git
branch: master
至此,基本部署完成
添加mathjax支持
1 替换默认引擎
npm uninstall hexo-renderer-marked -save
npm install hexo-renderer-kramed --save
2 语义冲突问题
打开 node_modules/kramed/lib/rules/inline.js
编辑,将var lnline
的值修改为以下内容
var inline = {
// escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, 第 11 行, 将其修改为
escape: /^\\([`*\[\]()#$+\-.!_>])/,
autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
url: noop,
html: /^<!--[\s\S]*?-->|^<(\w+(?!:\/|[^\w\s@]*@)\b)*?(?:"[^"]*"|'[^']*'|[^'">])*?>([\s\S]*?)?<\/\1>|^<(\w+(?!:\/|[^\w\s@]*@)\b)(?:"[^"]*"|'[^']*'|[^'">])*?>/,
link: /^!?\[(inside)\]\(href\)/,
reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
reffn: /^!?\[\^(inside)\]/,
strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
// em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, 第 20 行,将其修改为
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
br: /^ {2,}\n(?!\s*$)/,
del: noop,
text: /^[\s\S]+?(?=[\\<!\[_*`$]| {2,}\n|$)/,
math: /^\$\$\s*([\s\S]*?[^\$])\s*\$\$(?!\$)/,
};
写到一半不想写了,博客也不想搭了,找不到合适的主题,太耗时间了,老老实实用csdn吧