学习HEXO的历程

  • 前言:
  • 简介
  • 开始搭建
  • 命令
  • API测试


逛github相关的帖子时,发现了hexo。正好想要做一个个人的博客,用来记录自己的各类感悟,所以花一些时间学习学习,以后博客可以放github,省得去注册csdn、掘金这些博客。
也算是一个私人日志,希望能记录下自己关于技术、生活、社会等相关的信息。
本文记录使用hexo遇到的一些坑,算是一个总结。持续更新。

简介

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

开始搭建

从零开始搭建一个个人博客,内容比较多,推荐以下几个文章(官网是必看的)。

命令

  • hexo g(hexo generate): 渲染source下的文件,生成到public下
  • hexo s(hexo server): 启动hexo服务器 启动完毕后可本地访问个人博客
  • hexo l(hexo list): 列出当前博客站点的一些信息(pagepostroutetagcategory)
    • 示例

      123456789
      > hexo l post>Date        Title                       Path                                  Category    Tags2018-03-06  Base 7                      _posts/Base_7.md                      LeetCode    LeetCode Problem - Base 72018-03-06  Escape The Ghosts           _posts/Escape_The_Ghosts.md           LeetCode    LeetCode Problem - Escape The Ghosts2018-03-06  Partition Equal Subset Sum  _posts/Partition_Equal_Subset_Sum.md  LeetCode    LeetCode Problem - Partition Equal Subset Sum2018-03-27  学习HEXO的历程              _posts/learn-hexo.md                  发现新大陆  学习HEXO2018-04-03  js面向对象入门              _posts/js/js-oop.md                   js base     js2018-04-05  ppt-demo                    _posts/ppt/ppt-demo.md                ppt         reveal-demo

文章

  • hexo new <title>新建title.md文件
  • MARKDOWN语法
  • TIP:
    • .md文件的开始采用如下形式描述即可,其中不能带:,测试过在tags中带了:,编译未通过:

      12345
      title: Partition Equal Subset Sumdate: 2018-03-06 18:00:00tags: LeetCode Problem - Partition Equal Subset Sumcategory: LeetCode---

API测试

  • 添加描述:
    title: 必填。你文章的名称,尽量简洁高效。
    path: 文章路径。
    category: 分类策略。其实就是你分类的文件目录。
    tags: 额外标签,可以取得小一点,实用就行。

hack

静态资源

要知道hexo的原理是把你写的markdown文件按一定的规则渲染成html+css+js的,最终生成的网站,和我们手写效果是一样的,只不过是让你能够用写文档的方式写一个网站罢了。所 大专栏  学习HEXO的历程以要想引入图片、css还是很容易的。

  • step1: 在source目录下新建文件夹,用于放置您的静态资源,如/source/images,放置一张图片(handsome.png)进去
  • step2: 在您的md文件中采用相对路径引用您存放的文件![Alt text](/images/handsome.png)

    页面资源

    上面的例子阐释了如何加载一张图片,但是图片是不可能满足我们的,这辈子都不能满足。比如我们写了一个很酷炫的页面,要怎么去加载它呢?这时候如果把一堆静态资源丢到source下,很可能会报错。博主试过如下目录结构出错。

    1234567891011
    |-source  |-ppt    |-css      |-print        |-paper.css        |-pdf.css      |-theme        |...      |-js        |reveal.js      index.html

对你没看错,想要在某个md文件内引用我用reveal.js制作的ppt。但是在hexo g的时候会报错。这个错误是由js文件产生的,老是说js文件结尾有错。后来上网学了一招。

  • 将ppt目录拷贝至theme/next/source/下。因为theme的内容在hexo g的时候是直接拷贝至public下的,绕过了自带的渲染。这时候在你的md文件内相对链ppt-demo.html就可以了。

    主题

    _config.yml内设置theme: next

  • next
    • 设置展开阅读:auto_excerpt.enable = true
    • 设置主题: scheme(有四种可选,可以多设置几个试试)
    • 设置tagscategories: hexo new page “tags”,然后在index.md里面设置type: "tags"

样式

hexo是一个静态博客框架,里面的样式自然是高度可配置的。以博主使用的next主题为例:

theme
  |-next
      |-.github
      |-languages : 语言包
      |-layout    : 布局包
      |-scripts   : 脚本包.swig swig前端模板引擎
        |-source    : 源码包
      |-test      : 测试包

这其中layout包内的_custom就是用于用户自定义的脚本。其余目录大家可以自由阅读,没有十足把握不要轻易修改,不然搞坏了要恢复回去就不容易了。这讲一下背景图片。

  • 首先在页面内定位到body元素。他的class为class="pace-done"。然后webstorm全局搜索发现这个class是在pace.min.js内写的。
  • 修改pace-done的内容肯定是不允许的,我们继续查看themes/next/layout/_layout.swig(这个文件是总的布局文件,最后生成的代码可以在/public/index.html内看到)。在_layout.swig内搜索body。
  • 忽略swig模板语法。我们只需要关心body元素的样式即可,在body内加入class="wander-background-blue">。是的,只是在这里加了一个class。因为上一段分析的时候pace-done是在js脚本内添加的,所以这里在元素上直接写class,两者不会存在冲突。
  • 接着定义您的.wander-background-blue即可
    .wander-background-blue {
    background :#1f47bb;
    background-image: -webkit-linear-gradient(135deg, #13498b, #13194b);
    background-image: -moz-linear-gradient(45deg, #13498b, #13194b);
    background-image: -ms-linear-gradient(45deg, #13498b 0, #13194b 100%);
    background-image: -o-linear-gradient(45deg, #13498b, #13194b);
    background-image: linear-gradient(135deg, #13498b, #13194b);
    }
    

    这里需要说明一下:layout内是脚本内容,source才是源码。所以,这一段脚本应该放在themes/next/source/css下,框架开发者已经给我们预留了一个用户自定义文件,themes/next/source/css/_custom/_custom.styl。脚本放里面即可。

上面讲的是一种定位和修改样式的思路,其余样式大家可以自行开发,充分定制自己的博客。

实际上大部分样式都可以在themes/next/_config.yml内定制。有兴趣的可以查看该文档,英文描述也比较简单易懂,另外,博主的源码也欢迎查看。

原文地址:https://www.cnblogs.com/lijianming180/p/12239762.html

时间: 2024-10-11 03:42:03

学习HEXO的历程的相关文章

我的Java学习工具使用历程

Java基础:EditPlus(现用).notepad++(现用)MySQL:MySQL5.6.MySQL5.5(现用).Navicat for MySQL(现用).SQLYog(现用)Oracle:Oracle11gJDK:1.8(现用).1.7Tomcat:7.0.8.0(都用)WEB前端:HBuilder(现用).Submit Text 3.Aptana Studio 3Eclipse:Eclipse JavaSE.Eclipse JavaEE(Mars.oxygen-->现用)MyEcl

大神从自学到跟班学习的艰辛历程

1.奠定java的语法基础 学习java的第一步,就是学会使用java这个程序语言来编写程序,而学习程序语言的第一步就是熟悉其语法的使用.程序语言就是一门语言,所不同的是这种语言是用来与计算机沟通的,所以若要熟悉语言,使用的方法莫过于多看别人写的程序,了解别人是如何使用java来解决问题的,然后针对同样的程序进行练习,并从实例中测试自己是否真正了解到如何解决问题. 2.运用基本的j2seAPI 除了java语言本身的语法之外,懂得运用j2se的API也是一个必要的课题,然而在这么多的API下,您

C++学习的心路历程之心理障碍

断断续续的C++学习已经过了1年多了,可是,我还是没有迈出可以自如输出写点什么的那一步.甚至我因为这个老是怀疑自己的智商,我是真心想学懂,因为这个关系到我的就业,直接关系到我的饭碗.我是十分的着急,可是越着急越是没有进展,渐渐地我更加的没自信,甚至有点抑郁的迹象.总之,它已经成了我的心理负担. C++视频教程没少看,但是感觉没什么进展,会了一些关键字.语法什么的,可是,一段时间不用,又忘了.跟没学差不多,哎!真是的. 的确,我没有从C++编程中得到乐趣,只是因为它关乎我的工作,关乎我的未来.所以

学习UFT11.5历程(一)

博主三年来测试都是功能测试 看了虫师的文章,感觉是要学点东西.所以,听从虫师的话,不被眼花瞭乱的测试技术打扰,先学习UFT,再学习python. 再不学习感觉要被淘汰了...... 也不想有谈工资的时候,被HR说反正做测试的人也挺多的...... --------------------------------------------------------------------------------------------------------------- UFT入门--自学 1. U

学习golang的历程——持续更新

学习一门语言首先hello world 1,首先建立一个目录,新建一个hello.go的文件 package main import ( "fmt" ) func main() { fmt.Println("hello world") } 2,go run hello.go [email protected] study % go run hello.go hello world 上面我们就完成了我们的基础使命.下面我们正式开始入门 在正式进入写代码之前,推荐大家使

Python学习之心路历程------第一天:基本概念(1)

注:本文大部分内容来源于Python简明,个人喜好,如有版权问题,请及时联系本人 单引号 你可以用单引号指示字符串,就如同'Quoteme on this'这样.所有的空白,即空格和制表符都照原样保留. 使用双引号(") 在双引号中的字符串与单引号中的字符串的使用完全相同,例如"What'syour name?" 使用三引号('''或""") 利用三引号,你可以指示一个多行的字符串.你可以在三引号中自由的使用单引号和双引号.例如: '''This

学习UFT11.5历程(三)

已经用UFT11.5完成了几个大流程的录制和脚本调测. 现整理下这段过程中脚本中应该记住的点(QTP是VB脚本): 1. 循环和条件部分_reporter结果展示 For i = 1 To brow Step 1 cell_value=btable.GetCellData(i,4) If trim(cell_value)=ordernum Then     orderstatus=btable.GetCellData(i,1)     If trim(orderstatus)="存盘"

写点我的学习javaweb的点滴历程(我原来是学.net的)

今年因为项目需要,开始学习myeclipse了,虽然有几年的net学习经验,学习起来感觉,java和.net差别挺大,从创建myeclipse开发环境;安装myeclipse:安装apache:安装tomcat:用myeclipse创建第一个javaweb项目:第一个javaweb项目的发布:虽然简单,但是费了一周的业余时间.(感叹,以前初学.net时,也就是2-3天就把这些搞定了,这就是java和.net的区别之一) 下面我就把自己学习力点滴历程贡献出来(之所以贡献出来,是因为每次碰到问题到百

如何系统地学习JavaScript

在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证.浮动广告等,所以那时候JavaScript并没有受到重视.自从AJAX开始流行后,人们发现利用JavaScript可以给用户带来更好的体验,甚至利用这一优点开发了大型网页游戏,于是这门小语言被重视了起来.现在,很多公司会招专门的JavaScript工程师,通常JavaScript是WEB前端开发的必备技能.简单介绍了JavaScriptr的好处,并不代表大家就会去学习甚至把它学好,兴趣是很关键的,我认为兴趣是最好的老师,它