diff --git a/package.json b/package.json index 5389820..45360f0 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "gravatar": "^1.8.0", "javascript-time-ago": "^1.0.30", "js-yaml": "^3.9.0", + "jsdom": "^14.0.0", "jsondiffpatch": "0.2.5", "jsonwebtoken": "^8.4.0", "mariadb": "^2.0.2-rc", diff --git a/utility.js b/utility.js index 21936c2..d6f764c 100644 --- a/utility.js +++ b/utility.js @@ -26,6 +26,7 @@ let querystring = require('querystring'); let gravatar = require('gravatar'); let filesize = require('file-size'); let AsyncLock = require('async-lock'); +let JSDOM = require('jsdom').JSDOM; module.exports = { resolvePath(s) { @@ -41,20 +42,16 @@ module.exports = { .split('').join('
') .split('
').join('
').split('
').join(''); - let cheerio = require('cheerio'); - let $ = cheerio.load(''); - let body = $('body'); - body.html(s); + let jsdom = new JSDOM(), document = jsdom.window.document; + document.body.innerHTML = s; - let a = $('img:only-child'); + let a = document.querySelectorAll('p > img:only-child'); for (let img of Array.from(a)) { - if (!img.prev && !img.next) { - $(img).css('display', 'block'); - $(img).css('margin', '0 auto'); - } + img.style.display = 'block'; + img.style.margin = '0 auto'; } - return body.html(); + return document.body.innerHTML; }; return new Promise((resolve, reject) => { if (!keys) {