# hexo 中代码块样式调整 1
#
问题描述
- 代码显示在代码的头部,代码块 body 部分是空白的。
- 代码块前面的三个不同颜色的小点被遮挡。
- 代码块区域放大以后不能点返回箭头,否则页面卡住,必须刷新页面才能继续浏览。
- 代码块的行号从头部开始显示。
#
解决方法
前四个问题我找了一天的答案,总是有瑕疵,终于,第二天中午的时候,我找到了,原来是主题配置的问题,所以啊,都是不认真看主题配置的原因,我用的是 hexo 中的 shoka 主题。主题配置里面有提到。停用默认代码高亮功能,否则代码块的 mac 样式不能正常显示。找到
highlight
和prismjs
把enable
改成false
以下是我的代码:
highlight: enable: false # 主题配置需要停用 auto_detect: true # 代码块高亮 line_number: true tab_replace: '' wrap: true hljs: false prismjs: enable: false # 主题配置需要停用 preprocess: true line_number: true tab_replace: ''
# hexo 中代码块样式调整 2
#
问题描述
- 代码块自动换行
- 代码块前后有空白行问题
#
解决方法
找到
hexo-util/lib/highlight.js
文件,一般路径为root/node_modules/hexo-util/lib/highlight.js
修改
highlight.js
中的代码,有些在35~38
行处,有些在91
行处,各有不同。
修改前
numbers += '<div class="line">' + (firstLine + i) + '</div>'; content += '<div class="line'; content += (mark.indexOf(firstLine + i) !== -1) ? ' marked' : ''; content += '">' + line + '</div>';
修改后
numbers += '<span class="line">' + (firstLine + i) + '</span>\n'; content += '<span class="line'; content += (mark.indexOf(firstLine + i) !== -1) ? ' marked' : ''; content += '">' + line + '</span>\n';总结:把里面的
div
标签换成span
标签
# 在 Hexo 插入本地图片
#
问题描述
- 图片显示不成功
- 页面没反应,或者显示图片的地方只显示
alt
里面的类容- 或者成功以后打印出
no src attr skipped...
这类似的代码#
解决方法
首先我们需要安装一个插件
npm install https://github.com/CodeFalling/hexo-asset-image --save
不要忘记修改配置文件
post_asset_folder 值为 true由于本身的 asset-image 有 bug ,我们需要在 node_modules 中寻找到 hexo-asset-image 插件,修改 index.js 内容为以下:
'use strict'; var cheerio = require('cheerio');// http://stackoverflow.com/questions/14480345/how-to-get-the-nth-occurrence-in-a-string
function getPosition(str, m, i) { return str.split(m, i).join(m).length;}
var version = String(hexo.version).split('.'); hexo.extend.filter.register('after_post_render', function(data){ var config = hexo.config; if(config.post_asset_folder){ var link = data.permalink; if(version.length > 0 && Number(version[0]) == 3) var beginPos = getPosition(link, '/', 1) + 1;else
var beginPos = getPosition(link, '/', 3) + 1;// In hexo 3.1.1, the permalink of "about" page is like ".../about/index.html".
var endPos = link.lastIndexOf('/') + 1; link = link.substring(beginPos, endPos); var toprocess = ['excerpt', 'more', 'content']; for(var i = 0; i < toprocess.length; i++){ var key = toprocess[i]; var $ = cheerio.load(data[key], { ignoreWhitespace: false, xmlMode: false, lowerCaseTags: false, decodeEntities: false }); $('img').each(function(){ if ($(this).attr('src')){// For windows style path, we replace '\' to '/'.
var src = $(this).attr('src').replace('\\', '/'); if(!/http[s]*.*|\/\/.*/.test(src) && !/^\s*\//.test(src)) {// For "about" page, the first part of "src" can't be removed.
// In addition, to support multi-level local directory.
var linkArray = link.split('/').filter(function(elem){ return elem != ''; }); var srcArray = src.split('/').filter(function(elem){ return elem != '' && elem != '.'; }); if(srcArray.length > 1) srcArray.shift(); src = srcArray.join('/'); $(this).attr('src', config.root + link + src); console.info&&console.info("update link as:-->"+config.root + link + src);}
}else{// 注释这两条打印是为了不报打印结果,不然你的命令窗口总会显示 no src attr skipped... 这类似的字样。
//console.info&&console.info("no src attr, skipped...");
//console.info&&console.info($(this));
}
}); data[key] = $.html();}
}
});最后,打开_config.yml 修改下述内容
# URL
## If your site is put in a subdirectory, set url as 'http://example.com/child' and root as '/child/'
# url: http://example.com
url: https://XXXXX.github.io # 主要修改这里,把前面的 XXXXX 改为自己的 github 地址即可。 root: /# permalink: :year/:month/:day/:title/
permalink: :title/permalink_defaults:
总结,由于我用的是 Typora 编辑器,对于 markdown 来说,有很多编辑器,可能各不相同,在插入图片的时候我是直接 QQ 截图再需要放的地方直接
Ctrl
+V
,这样的话,就会出现图片,上面会弹出将这个图片复制到。。。一般是在 root/source/images(这个文件夹是自己新建的,以后写文章里面的插图,我都放在这里面)之下。除了这里,还有文章的相同路径下也会保存一张相同的图片,(这张图片可以删除,不影响渲染。)建议删除文章之下的图片,以免重复多余。图片放入上面第四步说的文件路径
root/source/images
之下以后,放入自己对应的文件夹里面,一般每一篇博客都会单独创建一个专门存放该篇文章的图片文件夹。在文件里面引用的时候注意自己的路径有没有写错。路径格式如:![image-20201117153748902](../../../images/blog/image-20201117153748902.png)
注意:
这里路径注意必须是 images 文件之下的,(路径必须是../ 加上 images。../ 结束以后第一个路径文件必须是 images。)这里的路径注意了,不是
\
而是反斜杠/
,和写代码的路径引用一样的,具体在当前博客的第几层就有几个../
。每个../
代表上一层级。
# hexo 分类精选渲染问题
#
问题描述
- 精选翻转卡片渲染不出来
#
解决方法
_config.yml
配置只要配置对了,应该就可以了,下面我来说一下配置问题,打开根目录下的
_config.yml
文件,找到以下配置项。
default_category: uncategorized category_map: # edit for Theme.shoka 主题介绍: shoka #右上角小标题 主题配置: Theme-Configuration We-Games: we-games #右上角小标题 英雄联盟: LOL QQ飞车: QQ飞车 历练ing: Growth-Diary #右上角小标题 成长日记: Blog
主题介绍
,这个是你精选分类卡片中最右上角显示的字样。shoka
,这个是文件夹的名字,这是我文件夹的路径root\source\_posts\shoka
主题配置
,这个是显示在精选分类卡片正中间的文字标题。Theme-Configuration
这个是shoka
目录之下的子文件夹的名称- 在这个
Theme-Configuration
文件夹中,放着你写好的.md 文件和一张以cover.jpg
命名的图片。这里需要注意的是
图片格式为 jpg,名字为 cover。千万不要弄错了。到这里,只是配置好了_config.yml
文件。这一步配置.yml其是可以省略
.md
文件头部配置这就是
.md
文件的 title 区域
title: Step.1 依赖插件 date: 2020/08/13 categories: - [主题介绍, 主题配置] tags:- Hexo
- 教程
- title,该文章的标题,我就不多说了。
- date,时间,显示写这篇文章的时间,是自己定义的,主题不会自动生成。
categories
类别。主要的就是这个了。- [第一个是显示在卡片右上角的字样,第二个是卡片中间的标题,。。。句号代码后面可有可无,如果有,就是翻转以后显示的文件夹名称,而不是直接能看到里面的文章,如果没有,就是可以直接看到这个文件夹之下的文章标题。点击即可调到相应的文章。命名格式
文件夹命名格式不能以+符号链接
否则精选卡片显示不出来。可以是英文,也可以是中文,还可以是中文与英文结合。但是
中间不能出现+
号。图片名字一定是cover
加.jpg
格式。- tags,给当前的这篇文章添加标签,这个标签会自动在你的用户栏生成。
- 总结:图片的命名与图片格式不要弄错,
重点
在.md
的配置中,(后期熟悉了以后,.yml文件可以不用配置
)除了字以外,其他的全部都是英文状态下的。包括标点符号
也是英文状态下的。categories
类别之下的-
后面有一个空格。
# 博客主题没有推到 github 上
有时候提交主题文件夹失败,提交上去以后打不开。
- 先移除空的主题文件夹。
git rm --cached themes
/ + 《你的主题文件夹名字》,译:意思是移除在主题文件之下的某个主题文件夹.- 移除之后,使用 git status 译:查看移除主题的状态。移除成功以后再添加
git add themes
/ + 《你的主题文件夹名字》译:意思是在主题文件之下添加某个主题文件夹- 使用:
git shtatus
译:查看添加主题的状态。之后再执行git add . git commit -m "test",git push
等操作就可以了。
# 博客主题的颜色更改
eeeeee,686d76,373a40,19d3da
# 添加文字特效
++ 下划线 ++ ++ 波浪线 ++{.wavy} ++ 着重点 ++{.dot} ++ 紫色下划线 ++{.primary} ++ 绿色波浪线 ++{.wavy .success} ++ 黄色着重点 ++{.dot .warning} ~~ 删除线 ~~ ~~ 红色删除线 ~~{.danger} == 荧光高亮 == [赤橙黄绿青蓝紫]{.rainbow} [红色]{.red} [粉色]{.pink} [橙色]{.orange} [红色]{.yellow} [绿色]{.green} [靛青]{.aqua} [蓝色]{.blue} [紫色]{.purple} [灰色]{.grey} 快捷键 [Ctrl]{.kbd} + [C]{.kbd .red} H~2~0 29^th^这段代码因为自动被 pangu.js 处理了一下,加了几个空格,导致直接复制代码不能正常显示。 正确的代码是
++下划线++
~~删除线~~
==荧光高亮==
,不能有空格哦。下划线
波浪线
着重点
紫色下划线
绿色波浪线
黄色着重点删除线红色删除线
荧光高亮
赤橙黄绿青蓝紫
红色
粉色
橙色
红色
绿色
靛青
蓝色
紫色
灰色
快捷键 Ctrl + C
H20
29th
# label 标签块
:::default | |
默认 | |
::: | |
:::primary | |
基本基本 | |
::: | |
:::info | |
提示提示 | |
::: | |
:::success | |
成功成功 | |
::: | |
:::warning | |
警告警告 | |
::: | |
:::danger | |
危险危险 | |
::: |
默认
基本基本
提示提示
成功成功
警告警告
危险危险