Browse Source

Replace cheerio with jsdom to fix <svg>'s xlink: bug

pull/6/head
Menci 5 years ago
parent
commit
883db1a360
  1. 1
      package.json
  2. 17
      utility.js

1
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",
"katex": "^0.10.1",

17
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('<table>').join('<table class="ui celled table">')
.split('<blockquote>').join('<div class="ui message">').split('</blockquote>').join('</div>');
let cheerio = require('cheerio');
let $ = cheerio.load('<html><head></head><body></body></html>');
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) {

Loading…
Cancel
Save