mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 17:16:14 +01:00
fix: #11664, dont create backlinks for quotes
This commit is contained in:
@@ -373,8 +373,13 @@ module.exports = function (Topics) {
|
|||||||
throw new Error('[[error:invalid-data]]');
|
throw new Error('[[error:invalid-data]]');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let { content } = postData;
|
||||||
|
// ignore lines that start with `>`
|
||||||
|
content = content.split('\n').filter(line => !line.trim().startsWith('>')).join('\n');
|
||||||
// Scan post content for topic links
|
// Scan post content for topic links
|
||||||
const matches = [...postData.content.matchAll(backlinkRegex)];
|
const matches = [...content.matchAll(backlinkRegex)];
|
||||||
|
console.log('match', matches);
|
||||||
if (!matches) {
|
if (!matches) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1163,6 +1163,28 @@ describe('Post\'s', () => {
|
|||||||
assert(backlinks);
|
assert(backlinks);
|
||||||
assert.strictEqual(backlinks.length, 0);
|
assert.strictEqual(backlinks.length, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should not detect backlinks if they are in quotes', async () => {
|
||||||
|
const content = `
|
||||||
|
@baris said in [ok testing backlinks](/post/32145):
|
||||||
|
> here is a back link to a topic
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> This is a link to [topic 1](${nconf.get('url')}/topic/1/abcdef
|
||||||
|
|
||||||
|
This should not generate backlink
|
||||||
|
`;
|
||||||
|
const count = await topics.syncBacklinks({
|
||||||
|
pid: 2,
|
||||||
|
content: content,
|
||||||
|
});
|
||||||
|
|
||||||
|
const backlinks = await db.getSortedSetMembers('pid:2:backlinks');
|
||||||
|
|
||||||
|
assert.strictEqual(count, 0);
|
||||||
|
assert(backlinks);
|
||||||
|
assert.strictEqual(backlinks.length, 0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('integration tests', () => {
|
describe('integration tests', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user