From e4325221734b06a06e24a670f4aef512fe8939c6 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 29 Nov 2017 17:34:20 +0800 Subject: [PATCH] better mark; loading css above; solution for pjax --- index.js | 17 ++++++++--------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index 066ead2..be61223 100644 --- a/index.js +++ b/index.js @@ -10,7 +10,6 @@ const fs = require('hexo-fs'), urlFn = require('url'), path = require('path'), srcDir = path.dirname(require.resolve('dplayer')), - mark = '', scriptDir = '/assets/js/', //change this to change js and css dir styleDir = '/assets/css/', files = [ @@ -60,17 +59,17 @@ if (!conf.cdn){ } hexo.extend.filter.register('after_render:html', (str, data) => { - //console.log(data); - if(!data.onRenderEnd && str.includes(mark)){ //make sure dplayer used in final html + if(!data.onRenderEnd && str.includes('class="dplayer hexo-tag-dplayer-mark"')){ //make sure dplayer used in final html var target = conf.cdn || tbIns, - s = str.replaceAll(mark,''); + s = str; target.forEach(item => { + console.log(item); if (item.endsWith('.css')) { var tag = util.htmlTag('link', {rel: 'stylesheet', type: 'text/css', href: item }); - s = s.substring(0,s.lastIndexOf(''))+tag+s.substring(str.lastIndexOf('')); + s = s.replace(/<\/head>/, tag + ''); }else if (item.endsWith('.js')) { var tag = util.htmlTag('script', {src: item}, ''); - s = s.substring(0,s.indexOf(''))+tag+s.substring(str.indexOf('')); + s = s.replace(/<\/head>/, tag + ''); }else if (item.endsWith('.map')) { //do nothing when sorce map used }else{ @@ -114,7 +113,7 @@ hexo.extend.tag.register('dplayer', (args) => { const width = opt.width || def.width, height = opt.height || def.height; var url = opt.url || def.url; - var raw = '
'; + var raw = '
'; if(url != undefined){ if (hexo.config['post_asset_folder'] == true ){ //for #10, if post_asset_folder is enable, regard url as relative url @@ -181,11 +180,11 @@ hexo.extend.tag.register('dplayer', (args) => { return v; } }).replace("\"document.getElementById('')\"",'document.getElementById("'+ id +'")') + - ');' + (opt.code || def.code || '') + '})()'; + ');window.dplayers||(window.dplayers=[]);window.dplayers.push(player);' + (opt.code || def.code || '') + '})()'; //console.log(opt.code,def.code,(opt.code || def.code || '')) } else{ raw += '

no url specified, no dplayer _(:3」∠)_

'; } - return raw+mark; + return raw; }); diff --git a/package.json b/package.json index 00974b3..2bea695 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "homepage": "https://github.com/MoePlayer/hexo-tag-dplayer#readme", "dependencies": { "dplayer": "^1.6.0", - "hexo-fs": "^0.1.6", - "hexo-util": "^0.6.1" + "hexo-fs": "^0.2.2", + "hexo-util": "^0.6.2" } }