(一)问题


如上,出现图片加载不出来等问题

(二)解决方法

1)图片存放方式

图片要放在与博客名同名的文件夹中

2)图片使用方式
采用![替代文本](图片路径)方式使用图片

  • 替代文本:当图片无法加载时,会显示这个文本,方便读者理解图片内容,也对无障碍阅读有帮助。
  • 图片路径:本地文件路径或网络 URL。
    示例:![](file-20250402125028567.png)

3)更改_config.yml文件
找到

post_asset_folder: false

替换成
post_asset_folder: true
marked:
  prependRoot: true
  postAsset: true

post_asset_folder: true开启文章资源文件夹(Post Asset Folder) 功能,这样每篇文章就可以有独立的资源目录。
marked.prependRoot: true是解析 Markdown 时,自动加上站点根目录。
postAsset: true让 Markdown 正确加载文章资源文件夹的内容。

4)安装 hexo-asset-image 插件
使用下面的指令安装

npm install https://github.com/CodeFalling/hexo-asset-image

更改/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{
console.info&&console.info("no src attr, skipped...");
console.info&&console.info($(this));
}
});
data[key] = $.html();
}
}
});

如果依然不成功,可能是图片文件名问题

(三)Obsidian管理博客

1)打开博客文件的source文件夹


2)新建一个_drafts文件夹

新建一个_drafts文件夹,为新Post存放位置。

然后文件与链接->存放新建笔记的文件夹->_drafts,将_drafts设为新Post存放位置。

3)使用 Obsidian 模板快速创建文章

1.在 source 目录下创建 _obsidian 文件夹,并创建一篇 Post Template 的文章(md文件),内容为:

---
title: {{title}}
categories:
tags:
mathjax: true
date: {{date}}
---

2.然后进入核心插件->模板,更改设置如下:
3.新建文章后,点击侧边栏的插入模板按钮,即可使用模板

4)更改图片设置

1.Obsidian安装插件Custom Attachment Location
第一个参数设置为 ./${filename}

2.在文件与链接中关闭Wiki选项

此时,在博客中复制图片时会自动创建同名文件夹并存放图片。