refactored postTools.toHTML to fire post.parse hook, and removed auto-markdowning

closed #214
v1.18.x
Julian Lam 12 years ago
parent 0243e9c5be
commit abce5fd120

@ -35,7 +35,8 @@
"request": "~2.25.0", "request": "~2.25.0",
"reds": "~0.2.4", "reds": "~0.2.4",
"winston": "~0.7.2", "winston": "~0.7.2",
"nodebb-plugin-mentions": "~0.1.0" "nodebb-plugin-mentions": "~0.1.0",
"nodebb-plugin-markdown": "~0.1.0"
}, },
"bugs": { "bugs": {
"url": "https://github.com/designcreateplay/NodeBB/issues" "url": "https://github.com/designcreateplay/NodeBB/issues"

@ -94,7 +94,7 @@ var RDB = require('./redis.js'),
PostTools.privileges(pid, uid, function(privileges) { PostTools.privileges(pid, uid, function(privileges) {
if (privileges.editable) { if (privileges.editable) {
plugins.fireHook('filter:save_post_content', content, function(parsedContent) { plugins.fireHook('filter:post.save', content, function(parsedContent) {
content = parsedContent; content = parsedContent;
success(); success();
}); });
@ -170,31 +170,27 @@ var RDB = require('./redis.js'),
} }
PostTools.toHTML = function(raw, callback) { PostTools.toHTML = function(raw, callback) {
var marked = require('marked'), plugins.fireHook('filter:post.parse', raw, function(parsed) {
cheerio = require('cheerio'); var cheerio = require('cheerio');
marked.setOptions({ if (parsed && parsed.length > 0) {
breaks: true var parsedContentDOM = cheerio.load(parsed);
}); var domain = nconf.get('url');
if (raw && raw.length > 0) {
var parsedContentDOM = cheerio.load(marked(raw));
var domain = nconf.get('url');
parsedContentDOM('a').each(function() {
this.attr('rel', 'nofollow');
var href = this.attr('href');
if (href && !href.match(domain) && !utils.isRelativeUrl(href)) { parsedContentDOM('a').each(function() {
this.attr('href', domain + 'outgoing?url=' + encodeURIComponent(href)); this.attr('rel', 'nofollow');
} var href = this.attr('href');
});
if (href && !href.match(domain) && !utils.isRelativeUrl(href)) {
this.attr('href', domain + 'outgoing?url=' + encodeURIComponent(href));
}
});
callback(null, parsedContentDOM.html()); callback(null, parsedContentDOM.html());
} else { } else {
callback(null, '<p></p>'); callback(null, '<p></p>');
} }
});
} }

Loading…
Cancel
Save