mark down图片上传博客失败解决方法


第一种

修改属性值

打开博客所在的文件夹,找到_config.yml文件,修改post_asset_folder的值为 true

每次执行hexo n “文件名”命令,文件所在文件夹同时创建一个与同名文件执行时的文件夹,就可以把文件找寻这个文件夹内。

打开你的 md 文件,使用标签插件来插入同名文件夹内代码的图片

![图片描述](/md文件夹名字/name.jpg)

如果不能正常显示则往下看


第二种

安装插件

在目录 blog 调用 git bash
输入命令

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

找到/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();
    }
  }
});

之后在执行hexo n "文件名"命令,把图片放到同名文件夹内再引用


第三种(个人推荐)

使用即刻图床(浏览器扩展插件)

电脑内的图片或者拖拽图片,生成markdown连接,复制粘贴到md文件中。

前面几个图片方法没有成功,只有图床能够完整并且全部显示的插件。

如果标签插件和安装插件都没有成功的话可以试一下图床扩展!


文章作者: John Doe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 John Doe !
  目录