Code Monkey home page Code Monkey logo

Comments (3)

zhanjinhao avatar zhanjinhao commented on August 31, 2024

你解决这个问题没,我也遇到了这个问题

from hexo-asset-image.

zhanjinhao avatar zhanjinhao commented on August 31, 2024

解决这个问了,把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();
}

}
});

from hexo-asset-image.

xcodebuild avatar xcodebuild commented on August 31, 2024

0.0.4 版本中是否仍然存在?

from hexo-asset-image.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.