hexo博客搭建和使用


Hexo与Github pages 实现静态博客

第一.博客搭建

1.hexo

(1)hexo是什么

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

(2)hexo安装

a.安装前提

安装Hexo前,需要先安装下列应用程序:

  • Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
  • Git

git 和 node 的安装方法 在后面hexo + github pages给出 着急的小伙伴可以直接从那里开始看

b.安装 Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

$ npm install -g hexo-cli
或者
$ npm install hexo

安装以后,可以使用以下两种方式执行 Hexo:

  1. npx hexo

  2. 将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用 hexo

    echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.profile

2.Github page

(1) github page创建

基本页面的生成

  1. 首先你需要注册一个 GitHub 账号,并在个人主界面里选择创建一个新的 Repository 。
  2. 进入页面后,在 Repository name 的位置填写域名,格式是 username.GitHub.io。
  3. 创建成功之后,点击右上角的 Settings找到 GitHub Pages 选项,选择一个 GitHub 官方提供的主题
  4. 选择完毕之后 GitHub Pages 就会自动帮你生成好网站,在他跳转的界面点击 Commit changes 按钮,网站就可以访问了。
  5. 在浏览器里输入你的项目名称,比如 brick713.GitHub.io,就可以看到,你刚刚选择的主题的个人网站的页面了。

3.hexo + Github page

(1).git

a. git安装
  • windows下载安装 git
  • linux下载安装指令
    sudo apt-get install git-core 或者sudo yum install git-core
b. git和github绑定
  1. 安装成功后,将 git 与 GitHub 账号绑定,右键打开 Git Bash

  2. 配置用户名和邮箱
    git config --global user.name "github 用户名"
    git config --global user.email "github 注册邮箱"

  3. 生成 ssh 密钥
    ssh-keygen -t rsa -C "github 注册邮箱"

  4. 一般执行上述命令之后,会生成 id_rsa 和 id_rsa.pub 两个文件,前者是我们私有的,而后者则是对外开放的。接着找到生成的 .ssh 的文件夹中id_rsa.pub 密钥,将内容复制,然后打开 GitHub-Settings-Keys 页面,创建一个新的 SSH key,填写 Title 和 Key,Title 可以随意,而 Key 的内容则是我们刚才复制的 id_rsa.pub 中的内容,最后点击 Add SSH key 即可

(2).node.js

a. node.js安装
  • 下载node.js下载
  • 一直下一步即可
  • 验证 在命令行输入 node -v可以查看版本
b. node.js初始化
  • 在git bash中安装
    npm i hexo-cli -g
  • 选择一个文件夹来放置博客文件,并用如下命令进行初始化并安装必备组件
//在对应文件夹下git bash here
 hexo init .
 npm install
c.初始化后的文件
  • _config.yml # 网站配置信息
  • package.json # 应用程序信息
  • scaffolds # 模板文件夹
  • source # 存放用户资源 _drafts 草稿箱 _posts 文章
  • themes # 主题文件夹

(3) 将自己的github网址 替换 _config.yml最后的

deploy:
  type: git
  repo: //此处替换为自己的github的对应仓库网址
	例:https://github.com/xxxxx/xxxxx.github.io.git
  branch: master

第二.博客使用

1.新建博客

在搭建博客的文件夹中git bash here 进入到 Blog/source/_post文件夹中(_post为默认选项 即发表文章)

可以在source文件夹中创建文件夹 new时加参数 例如草稿箱_draft)

hexo new [layout] 
例如 hexo new "我的博客" 

hexo new post "我的文章" //就会在/source/_post文件创建名为 我的文章.md的文件
hexo new draft "我的草稿" //就会在/source/_draft文件创建名为 我的草稿.md的文件
</code></pre>
<p>其中[layout]为布局</p>
<ul>
<li>创建md文件时可以指定布局</li>
<li>包括三种布局 page draft post分别为页面,草稿,文章  默认为post</li>
<li>在新建文件时,Hexo 会根据 scaffolds 文件夹内相对应的文件(可以理解为模板)来建立md文件</li>
<li>当创建不同的md文件会在不同的存储路径</li>
</ul>
<blockquote>
<p>注意但不想一个文件显示在页面上时,可以移动到_draft文件夹</p>
<ul>
<li>在启动服务器时加上 --draft来查看草稿</li>
<li>还可以在站点配置文件中把render_drafts设为true 可以通过publish将草稿发布文章或者页面</li>
</ul>
</blockquote>
<pre><code>hexo server --draft
hexo publish [layout] <title>
</code></pre>
<h3 id="2博客编写">2.博客编写</h3>
<h4 id="1front-matter">(1)Front-matter</h4>
<p>创建一个文件后可以看到这些,成为Front-matter</p>
<pre><code>---
title: hexo博客搭建和使用
tags:
---
</code></pre>
<p>此处包括一些预定义参数如下</p>
<pre><code>layout  布局  默认为true,如果你不想你的文章被处理,可以设置为false
title  标题  标题会显示在最上方居中位置 
date  建立日期如果不指定则为默认值-文件创建日期,可以自定义。
update  更新日期  如果不指定则为默认值-文件修改后重新生成静态文件的日期。
comments  是否开启文章的评论功能 默认值为true
tags  标签(不适用于页面page布局)
categoreies  分类(不适用于页面page布局)
permalink  覆盖文章网址
keywords  仅用于 meta 标签和 Open Graph 的关键词(不推荐使用)
</code></pre>
<p>举个例子</p>
<pre><code>---
title: hexo博客搭建和使用
date: 2022-03-22 11:51
tags:
- 博客搭建
categories:
- 个人博客
- 博客搭建使用
---
</code></pre>
<h4 id="2博客正文编写">(2)博客正文编写</h4>
<p>使用markdow文法编写博客,保存<br>
markdown语法可以参考这个markdown官方语法</p>
<h3 id="3博客预览和发布">3.博客预览和发布</h3>
<h4 id="1基本操作">(1)基本操作</h4>
<p>一般发布文章或者修改博客后需要这些操作:</p>
<ul>
<li>清除缓存</li>
<li>生成静态文件</li>
<li>启动服务器</li>
<li>测试没问题</li>
<li>部署</li>
</ul>
<h4 id="2常用命令">(2)常用命令</h4>
<ul>
<li>清除缓存:hexo clean</li>
<li>生成静态文件:hexo generate可简写为 hexo g</li>
<li>启动服务器:hexo server或者 hexo s  此处默认的端口号为4000 可以使用-p(--port)重设端口,此处使用浏览器浏览localhost:4000可以预览自己的博客</li>
<li>部署:hexo deploy可简写为hexo d,用于将网站部署到服务器上。将博客托管到GitHub Pages或Gitee Pages 注意:此处可以使用-g(--generate),hexo d -g部署前预先生成静态文件,等同于 hexo g -d</li>
</ul>
<p>举个例子</p>
<pre><code> hexo clean  
 hexo g 
 hexo s //此处注意预览完在git bash窗口Ctrl+c关闭,直接关闭浏览器可能会使端口无法释放
 hexo d</code></pre>
						  
					  </div>
						<!--conend-->
							<div class="p-2"></div>

						<div class="arcinfo my-3 fs-7 text-center">
							
							
			<a href='/t/etagid21449-0.html' class='tagbtn' target='_blank'>个人博客</a>							
						



						</div>
						
						<div class="p-2"></div>

						

						
					</div>
					<div class="p-2"></div>
					<!--xg-->
					<div class="lbox p-4 shadow-sm rounded-3">
						<div class="boxtitle"><h2 class="fs-4">相关</h2></div>
						
<hr>				
						
			<div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-560106.html">腾讯云搭建个人博客wordpress</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-538198.html">搭建个人博客(扩展)</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-456139.html">个人博客模板</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-445259.html">小迪安全 Web安全 第十六天 - PHP开发 - 个人博客项目&JS-Ajax&前端逻辑&购物&登录&上</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-412868.html">个人博客网页设计代码</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-350095.html">VuePress搭建个人博客</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-338486.html">使用Docker快速搭建Halo个人博客到阿里云服务器上[附加主题和使用域名访问]</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-320255.html">船新个人博客</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-317058.html">个人博客搭建</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-282731.html">基于Hexo搭建个人博客</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-201456.html">个人博客网站地址</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div><div class="row g-0 py-2 border-bottom align-items-center">
																
								<div class="col-7 col-lg-11 border-lg-end">
										<h3 class="fs-6 mb-0 mb-lg-2"><a href="/a/1-188674.html">【个人博客作业Week7】软件工程团队项目一轮迭代感想与反思</a></h3>
									
									<div class="ltag fs-8 d-none d-lg-block">
								 

        </div>
								</div>
							
							</div>            
            
            <!---->
                                    
           <!---->
  			
						

					</div>
					<!--xgend-->
				</div>

				<div class="col-lg-3 col-12 p-0 ps-lg-2">
					<!--box-->									
					<!--boxend-->
					<!--<div class="p-2"></div>-->

					<!--box-->
									<div class="lbox p-4 shadow-sm rounded-3">
					
									   <div class="boxtitle pb-2"><h2 class="fs-4"><a href="#">标签</a></h2></div>
										<div class="clearfix"></div>
										<ul class="m-0 p-0 fs-7 r-tag">
										</ul>
									

										
										<div class="clearfix"></div>
									</div>
					<!--box end-->

					
				</div>

			</div>
		
		
		
		</div>	

</main>
						<div class="p-2"></div>
<footer>
<div class="container-fluid p-0 bg-black">
	<div class="container p-0  fs-8">
	<p class="text-center m-0 py-2 text-white-50">一品网 <a class="text-white-50" href="https://beian.miit.gov.cn/" target="_blank">冀ICP备14022925号-6</a></p>
	</div>	
</div>
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?6e3dd49b5f14d985cc4c6bdb9248f52b";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
</footer>
		
<script src="/skin/bootstrap.bundle.js"></script>

</body>
</html>