fix: regression caused by cc6fd49c4d

This commit is contained in:
Julian Lam
2025-08-13 14:41:44 -04:00
parent c67aa43f14
commit 06c3824740
2 changed files with 7 additions and 14 deletions

View File

@@ -88,16 +88,9 @@ module.exports = function (Posts) {
while (current !== null) {
if (current[1]) {
try {
parsed = new URL(current[1]);
if (!parsed.protocol) {
if (current[1].startsWith('/')) {
// Internal link
absolute = nconf.get('base_url') + current[1];
} else {
// External link
absolute = `//${current[1]}`;
}
parsed = new URL(current[1], nconf.get('url'));
absolute = parsed.toString();
if (absolute !== current[1]) {
const offset = current[0].indexOf(current[1]);
content = content.slice(0, current.index + offset) +
absolute +

View File

@@ -763,18 +763,18 @@ describe('Post\'s', () => {
it('should turn relative links in post body to absolute urls', (done) => {
const nconf = require('nconf');
const content = '<a href="/users">test</a> <a href="youtube.com">youtube</a>';
const content = '<a href="/users">test</a> <a href="//youtube.com">youtube</a>';
const parsedContent = posts.relativeToAbsolute(content, posts.urlRegex);
assert.equal(parsedContent, `<a href="${nconf.get('base_url')}/users">test</a> <a href="//youtube.com">youtube</a>`);
assert.equal(parsedContent, `<a href="${nconf.get('base_url')}/users">test</a> <a href="https://youtube.com/">youtube</a>`);
done();
});
it('should turn relative links in post body to absolute urls', (done) => {
const nconf = require('nconf');
const content = '<a href="/users">test</a> <a href="youtube.com">youtube</a> some test <img src="/path/to/img"/>';
const content = '<a href="/users">test</a> <a href="//youtube.com">youtube</a> some test <img src="/path/to/img"/>';
let parsedContent = posts.relativeToAbsolute(content, posts.urlRegex);
parsedContent = posts.relativeToAbsolute(parsedContent, posts.imgRegex);
assert.equal(parsedContent, `<a href="${nconf.get('base_url')}/users">test</a> <a href="//youtube.com">youtube</a> some test <img src="${nconf.get('base_url')}/path/to/img"/>`);
assert.equal(parsedContent, `<a href="${nconf.get('base_url')}/users">test</a> <a href="https://youtube.com/">youtube</a> some test <img src="${nconf.get('base_url')}/path/to/img"/>`);
done();
});
});