下载软件
下载安装Node.js,官网地址:https://nodejs.org/en/download/
下载安装git,官网地址:https://git-scm.com/download/win
下载安装githubDesktop,官网地址:https://desktop.github.com/
注:实际git与githubDesktop安装一个就可以,只是不习惯使用命令行的人使用githubDesktop更方便。
注册github 官方地址:https://github.com/
注册后登录,创建一个自己的github pages项目,项目名称一般与自己的登录名一致。
Hexo 安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 在本地创建一个Hexo目录,并进入目录,右键选择Git Bash Here npm install hexo-cli -g npm install hexo-deployer-git --save hexo init hexo generate hexo server 访问localhost:4000 # 在执行hexo命令时提示: internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'D:\Git\node_modules\hexo-cli\bin\hexo' 之后在C:\Users\r\AppData\Roaming\npm中找到node_modules,将其复制到D:\Git下后,可以正常使用hexo命令
配置SSH密钥 1 2 3 4 5 6 ssh-keygen -t rsa -C "[email protected] " # 这将按照你提供的邮箱地址,创建一对密钥。一直回车就可以完成 cat ~/.ssh/id_rsa.pub 复制公钥,将公钥放到github页面中的Settings中的SSH and GPG keys中 ssh -T [email protected] # 测试密钥是否生效,如果生效会有向用户打招呼的提示
设置用户信息 1 2 3 4 git config --global user.name "ryanlijianchang" # 用户名 git config --global user.email "[email protected] " # 填写自己的邮箱
将本地的Hexo文件更新到Github的库中
登录github
打开自己的项目
点击Clone or download,选择SSH,并复制地址
打开本地创建的Hexo目录,打开_config.yml文件
在配置文件中修改
执行命令
1 2 3 hexo g -d # 完成远程部署,如果有报错 ERROR Deployer not found: git,可以删除node_modules目录,再重新执行下面的命令 npm install hexo-deployer-git --save
访问name.github.io
美化自己博客 安装主题
进入https://hexo.io/themes/
选择自己喜欢的主题,并打开,打开后是一个github的页面,复制git地址
到本地Hexo目录中的themes右键选择Git Hash Here
克隆主题到本地git clone https://github.com/iissnan/hexo-theme-next
修改Hexo配置文件,将_config.yml文件中的theme后的参数改为自己下载的主题的名字
部署主题,本地查看。
1 2 3 hexo g hexo s 访问localhost:4000
部署到Github上
主题设定
打开主题配置文件
1 E:\GitHub\ruopu89.github.io\themes\hexo-theme-next\_config.yml
设置
1 2 3 4 5 6 # Schemes # scheme: Muse # scheme: Mist # scheme: Pisces scheme: Gemini # 现在有四种风格,使用哪个就去掉其前面的注释
设置语言
打开站点配置文件
1 2 E:\GitHub\ruopu89.github.io\_config.yml # 注意这里一定是在站点配置文件中设置
设置
1 2 language: zh-TW # 在主题配置目录中有一个languages目录,在这里是可以使用的语言的文件。上面设置的语言应该和languages目录中的文件名是一样的。
设置菜单
打开主题配置文件
1 E:\GitHub\ruopu89.github.io\themes\hexo-theme-next\_config.yml
设置
1 2 3 4 5 6 7 8 9 10 11 menu: home: / || home //主页 # about: /about/ || user //关于页面 # tags: /tags/ || tags tags: /tags || tags //标签页 categories: /categories/ || th //分类页 archives: /archives/ || archive //归档页 # schedule: /schedule/ || calendar # sitemap: /sitemap.xml || sitemap # commonweal: /404/ || heartbeat //公益 404 //这里最前面的name:表示在页面中显示的内容;后面是路径;最后的|| name表示显示的图标样式。除了主页与归档页外,其他需要手动创建这个页面
设置侧栏
默认情况下,侧栏仅在文章页面(拥有目录列表)时才显示,并放置于右侧位置。
打开主题配置文件
1 E:\GitHub\ruopu89.github.io\themes\hexo-theme-next\_config.yml
设置位置
1 2 3 sidebar: position: left # 可以使用的值有left和right
设置侧栏显示的时机
1 2 3 4 5 6 7 8 sidebar: display: post //可选项: //post - 默认行为,在文章页面(拥有目录列表)时显示 //always - 在所有页面中都显示 //hide - 在所有页面中都隐藏(可以手动展开) //remove - 完全移除 //已知侧栏在 use motion: false 的情况下不会展示。 影响版本5.0.0及更低版本。
添加标签
新建页面
1 2 3 在项目目录中右键打开git hexo new page tags # 在项目目录中的source 创建一个tags目录,如果没有这个目录,在页面上就没法打开这个标签
设置页面类型
1 2 3 4 5 6 7 在新建的tags目录中会自动生成一个叫index的文件,打开它 --- title: 标签 date: 2014-12-22 12:39:04 type: "tags" --- # index文件中的内容如上,添加type : "tags"
修改菜单
1 2 3 4 5 6 修改主题配置文件 menu: home: / archives: /archives tags: /tags # tags一行要取消注释,这样在页面中才能显示tags标签
写作
1 2 3 4 5 6 7 在新建文章后,在文章头部会有如下内容 --- hetitle: 搭建个人博客github_pages date: 2018-08-30 08:32:00 tags: hexo --- # 要指定此文章的tags,这样就可以将文章加入上面创建的tags中了,打开页面时在tags标签中会有一个hexo,在hexo中有我们的文章
添加分类页面
新建页面
1 2 3 在项目目录中右键打开git hexo new page categories # 在项目目录中的source 创建一个categories目录,如果没有这个目录,在页面上就没法打开这个标签
设置页面类型
1 2 3 4 5 6 7 在新建的tags目录中会自动生成一个叫index的文件,打开它 --- title: 标签 date: 2014-12-22 12:39:04 type: "categories" --- # index文件中的内容如上,添加type : "categories"
修改菜单
1 2 3 4 5 6 修改主题配置文件 menu: home: / archives: /archives categories: /categories # categories一行要取消注释,这样在页面中才能显示categories标签
写作
1 2 3 4 5 6 7 在新建文章后,在文章头部会有如下内容 --- hetitle: 搭建个人博客github_pages date: 2018-08-30 08:32:00 categories: hexo --- # 要指定此文章的tags,这样就可以将文章加入上面创建的tags中了,打开页面时在tags标签中会有一个hexo,在hexo中有我们的文章
添加搜索功能 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 cd /home/ruopu/文档/Github/ruopu.github.io # 先到博客的根目录 npm install hexo-generator-searchdb --save # 安装搜索插件 vim /home/ruopu/文档/Github/ruopu.github.io/_config.yml search: path: search.xml field: post format: html limit: 10000 # 在博客的配置文件中添加上述内容 vim /home/ruopu/文档/Github/ruopu.github.io/theme/hexo-next/_config.yml local_search: enable: true # 配置主题的功能,上面内容默认是flase,改为true hexo g hexo d # 上传后就可以看到搜索功能了。
添加访客人数统计 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89.github.io/themes/hexo-theme-next/layout/_partials/footer.swig # 打开使用的主题下的这个文件 <div class="copyright"> ... ... <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"> </script> <span class="post-meta-divider">|</span> <span id="busuanzi_container_site_pv"> 本站总访问量: <span id="busuanzi_value_site_pv"></span>次 </span> </div> # 在上方的两个div之间配置上面的代码,script是安装不蒜子的统计脚本,下面的本部总访问量是统计的PV量 # pv:单个用户连续点击n篇文章,记录n次访问量 # uv:单个用户连续点击n篇文章,只记录1次访客数 # 使用uv的方法 # <span id ="busuanzi_container_site_uv" > # 本站访客数<span id ="busuanzi_value_site_uv" ></span>人次 # </span> # 参考:https://hexo-guide.readthedocs.io/zh_CN/latest/third-service/[%E4%B8%8D%E8%92%9C%E5%AD%90]%E8%AE%BF%E5%AE%A2%E4%BA%BA%E6%95%B0.html
添加文章阅读量统计 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 方法一 vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89.github.io/themes/hexo-theme-next/_config.yml busuanzi_count: enable: true # 这里默认是false,改为true即可。next主题自带了不蒜子的统计功能 total_visitors: true total_visitors_icon: user total_views: true total_views_icon: eye post_views: true post_views_icon: eye # 这个方法在进入文章后,可以看到阅读次数 方法二 vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89.github.io/themes/hexo-theme-next/layout/_macro/post.swig # 在{ {# LeanCould PageView #} <span id="busuanzi_container_page_pv"> <span class="post-meta-divider">|</span> <span class="post-meta-item-icon"> <i class="fa fa-eye"></i> </span> 阅读量: <span id="busuanzi_value_page_pv"></span>次 </span> # 这个方法在首页就能看到每篇文章的阅读次数 # 参考:https://hexo-guide.readthedocs.io/zh_CN/latest/third-service/[%E4%B8%8D%E8%92%9C%E5%AD%90]%E6%96%87%E7%AB%A0%E9%98%85%E8%AF%BB%E6%AC%A1%E6%95%B0.html
添加文章评论功能 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 1. 注册github应用,首先登录github,之后在settings->Developer settings->OAuth Apps中注册。注意需要输入四项内容,应用名称是自定义的,主页地址是自己的github页面的地址,但要注意,地址前要加https://, 不然会报错,应用说明是自定义的,授权回调地址与主页地址一样。注册成功后会得到Client ID和Client Secret 2. vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89 .github.io/themes/hexo-theme-next/layout/_third-party/comments/gitalk.swig {% if page.comments && theme.gitalk.enable %} <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"> <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script> <script type="text/javascript"> var gitalk = new Gitalk({ clientID: '{{ theme.gitalk.ClientID }}', clientSecret: '{{ theme.gitalk.ClientSecret }}', repo: '{{ theme.gitalk.repo }}', owner: '{{ theme.gitalk.githubID }}', admin: ['{{ theme.gitalk.adminUser }}'], id: location.pathname, distractionFreeMode: '{{ theme.gitalk.distractionFreeMode }}' }) gitalk.render('gitalk-container') </script> {% endif %} 3. vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89.github.io/themes/hexo-theme-next/layout/_partials/comments.swig {% elseif theme.gitalk.enable %} <div id="gitalk-container"></div> # 注意,添加的内容与前面的elseif同一级别上即可,但不要加在最后,测试时加在了18行左右的位置 4. vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89 .github.io/themes/hexo-theme-next/layout/_third-party/comments/index.swig {% include 'gitalk.swig' %} # 在最后一行添加内容 5. vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89.github.io/themes/hexo-theme-next/source/css/_common/components/third-party/third-party.styl @import "gitalk"; # 在最后一行上添加内容 6. vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89.github.io/themes/hexo-theme-next/source/css/_common/components/third-party/gitalk.styl .gt-header a, .gt-comments a, .gt-popup a border-bottom: none; .gt-container .gt-popup .gt-action.is--active:before top: 0.7em; # 新建文件,加入内容 7. vim /media/shouyu/C64CC89B4CC8879F/works/GitHub/ruopu89.github.io/themes/hexo-theme-next/_config.yml # Gitalk # Reference: https://asdfv1929.github.io/2018/01/20/gitalk/, https://liujunzhou.top/2018/8/10/gitalk-error/ gitalk: enable: true github_id: abc89 # github帐号,不用写邮箱地址 repo: abc # 仓库名称 client_id: # 注册得到的 client_secret: # 注册得到的 admin_user: abc89 # github帐号 distraction_free_mode: true # Facebook-like distraction free mode 8. 问题 描述:在文章底部评论框中出现错误信息“Error: Not Found” 解决办法:和repo属性有关,换一个新的仓库,比如新建仓库guestbook。 # 参考:https://extremegtr.github.io/2017/09/07/Add-Gitment-comment-system-to-hexo-theme-NexT/
高亮显示代码
编辑主题配置文件E:\GitHub\ruopu89.github.io\themes\hexo-theme-next_config.yml
1 2 highlight_theme: night blue # 可选的选择有:normal,night, night blue, night bright, night eighties
编辑站点配置文件E:\GitHub\ruopu89.github.io
1 2 3 4 5 6 7 highlight: enable: true line_number: true auto_detect: true # 这里默认是false tab_replace: # 设置后,博客中的代码会有高亮显示,但显示的还是有问题。无论是否在代码中加入语言标记。
添加图片
图片默认被保存在主题目录中的source中的images中,如:E:\GitHub\ruopu89.github.io\themes\hexo-theme-next\source\images,我们可以在这个目录下新建目录,与博客名称相同,所有图片都保存在这里 使用图片的网络地址也可上传图片。这种方式的问题应该是,当图片的网络地址失效时,这个图片也就看不到了。
1 ![](https://raw.githubusercontent.com/higoge/image/master/basic01/01.png)
1 2 3 4 使用markdown语法添加图片时可以使用下面的语法 <img src="/images/image.jpg"/> ![](/images/images.jpg) # 上面两种方法都可以添加图片,系统会自动到主题目录中的source 中的images中找图片。问题是,在markdown中是看不到图片的。因为提交后,系统会到images中找图片,所以要用这种格式,斜线也要用/。如果输入在windows中的路径,上传后是找不到图片的,所以也无法显示。
问题解决 github Desktop提交时提示“Commit failed - exit code 1 received” 解决:原因是不能提示的目录中也有.git目录,删除.git目录再上传就正常了。
在另一台ubuntu18.04系统上重新部署hexo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 * 安装所需软件包 apt install -y nodejs apt install -y npm apt install -y git npm install hexo-cli -g npm install hexo-deployer-git --save # 上面安装的nodejs是一个8.10的版本,也可以升级nodejs ssh-keygen -t rsa -C "[email protected] " # 生成密钥 cat .ssh/id_rsa.pub # 获取密钥 # 这两步在root和普通用户上都做了一遍。之后将得到的密钥复制到github上 ssh -T [email protected] # 在两个帐户上都测试一下连接是否成功。如果成功会有下面的提示,测试发现只在root用户下执行成功,在普通用户上执行也可以通过,但提示github不提供shell访问 Hi ruopu89! You've successfully authenticated, but GitHub does not provide shell access. git config --global user.name "ruopu1989" git config --global user.email "[email protected] " cd /media/rp/00E219519546E/MyFile/GitHub/rp.github.io hexo g hexo d # 如果这一步报错,可以尝试使用hexo clean撤消hexo g生成的静态文件,再执行hexo g重新生成再部署。 # 测试
github个人博客多电脑使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 apt install nodejs apt install npm npm install hexo-cli -g npm install hexo-deployer-git --save cd /home/GitHub/ruopu.github.io ssh-keygen -t rsa -C "[email protected] " # -C后的是一些描述信息 cat .ssh/id_rsa.pub # 将密钥复制到github上 ssh -T [email protected] # 测试与github连接是否成功 git config --global user.name "ruopu1989" git config --global user.email "[email protected] " # 自报家门 git init # 给源文件目录初始化git,虽然目录中已有内容,但这也不会报错的 git remote add origin https://github.com/abc/abc.github.io.git # 与远程的origin分支关联,最后的地址是github上项目的地址。使用git push时如果提示需要输入用户名和密码,可以删除远程地址,再试。命令:git remote remove origin。另外,这里也可以使用[email protected] :abc/abc.github.io.git地址。 git checkout -b source # 创建并切换分支,使用-b选择就是为了创建并切换。这与git branch source && git checkout source 两条命令的执行结果是一样的。 git branch # 现在本地只有一个source 分支,这也就是主分支 git add . # 添加所有内容到暂存区 git commit -m 'add source' # 提交 git push origin source # 将本地的source 分支推送到远程的origin分支上 在github上将source设置为主分支,这样之后clone的就都是这个source分支上的内容了。 ** 上传中会有一个问题,就是theme目录中的主题文件上传后可能是灰色的,这是因为获得主题文件时就是从另一个库clone来的,所以主题文件目录中也有.git文件。如果上传了目录,解决方法如下: 1. 将主题文件目录剪切到另一个不相干的目录中 2. git add . 3. git commit -m 'delete theme' 4. git push # 以上几步是为了将没有主题文件目录的信息再次提交,之后推送到远程库,也就删除了远程库上的主题文件目录 5. 将主题文件目录中的.git、.gitignore、.gitattributes三个文件删除,之后将主题文件目录再剪切回github的theme目录中 6. git add . 7. git commit -m 'new theme' 8. git push # 再次将没有.git文件的主题推送到远程库就没有问题了。 ============================================================================================== 推送时出现问题,原因是想将本地的文件推送到远程,但与远程有很多不同。可以使用下面命令强行推送。但本地的文件可能丢失。推送前将文件备份,推送后将丢失的文再复制到相应目录,再推送就可以了。 git push -f origin source ============================================================================================== 另外还涉及一些常用命令 git branch # 查看当前分支 git checkout master # 切换分支。加-b选项是创建并切换分支 git merge source # 将source 分支内容合并到当前分支 git add . git commit -m "abc" git push origin source git diff git status git log git remote add origin https://github.com/abc/rab.github.io.git git reset --hard HEAD^ # 回退到上一个版本 git reflog # 查看提交与回退历史 ==============================================================================================