merge: Change profile field value to not include <p> (!1141)

View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1141

Closes #1123

Approved-by: dakkar <dakkar@thenautilus.net>
Approved-by: Hazelnoot <acomputerdog@gmail.com>
This commit is contained in:
Hazelnoot 2025-07-26 22:49:40 +00:00
commit 88231c61af
3 changed files with 15 additions and 3 deletions

View file

@ -377,7 +377,7 @@ export class MfmService {
}
@bindThis
public toHtml(nodes: mfm.MfmNode[] | null, mentionedRemoteUsers: IMentionedRemoteUsers = [], additionalAppenders: Appender[] = []) {
public toHtml(nodes: mfm.MfmNode[] | null, mentionedRemoteUsers: IMentionedRemoteUsers = [], additionalAppenders: Appender[] = [], inline = false) {
if (nodes == null) {
return null;
}
@ -626,9 +626,15 @@ export class MfmService {
additionalAppender(doc, body);
}
return domserializer.render(body, {
let result = domserializer.render(body, {
encodeEntities: 'utf8'
});
if (inline) {
result = result.replace(/^<p>/, '').replace(/<\/p>$/, '');
}
return result;
}
// the toMastoApiHtml function was taken from Iceshrimp and written by zotan and modified by marie to work with the current MK version

View file

@ -585,7 +585,7 @@ export class ApRendererService {
const attachment = profile.fields.map(field => ({
type: 'PropertyValue',
name: field.name,
value: this.mfmService.toHtml(mfm.parse(field.value)),
value: this.mfmService.toHtml(mfm.parse(field.value), [], [], true),
}));
const emojis = await this.getEmojis(user.emojis);

View file

@ -63,6 +63,12 @@ describe('MfmService', () => {
const output = '<p><ruby><span><i>some</i> text</span><rp>(</rp><rt>ignore me</rt><rp>)</rp></ruby></p>';
assert.equal(mfmService.toHtml(mfm.parse(input)), output);
});
test('inline', () => {
const input = 'https://example.com';
const output = '<a href="https://example.com">https://example.com</a>';
assert.equal(mfmService.toHtml(mfm.parse(input), [], [], true), output);
});
});
describe('toMastoApiHtml', () => {