diff --git a/m2d/converters/event-to-message.js b/m2d/converters/event-to-message.js
index 9cd79bb..7c86cfa 100644
--- a/m2d/converters/event-to-message.js
+++ b/m2d/converters/event-to-message.js
@@ -126,10 +126,10 @@ turndownService.addRule("inlineLink", {
if (node.getAttribute("data-message-id")) return `https://discord.com/channels/${node.getAttribute("data-guild-id")}/${node.getAttribute("data-channel-id")}/${node.getAttribute("data-message-id")}`
if (node.getAttribute("data-channel-id")) return `<#${node.getAttribute("data-channel-id")}>`
const href = node.getAttribute("href")
- if (href === content) return href
let brackets = ["", ""]
content = content.replace(/ @.*/, "")
if (href.startsWith("https://matrix.to")) brackets = ["<", ">"]
+ if (href === content) return brackets[0] + href + brackets[1]
if (href.startsWith("https://matrix.to/#/@") && content[0] !== "@") content = "@" + content
return "[" + content + "](" + brackets[0] + href + brackets[1] + ")"
}
diff --git a/m2d/converters/event-to-message.test.js b/m2d/converters/event-to-message.test.js
index 2b354e0..33cbdd8 100644
--- a/m2d/converters/event-to-message.test.js
+++ b/m2d/converters/event-to-message.test.js
@@ -172,6 +172,33 @@ test("event2message: links in plaintext body are not broken", async t => {
)
})
+test("event2message: links in formatted body where the text & href are the same, just post the link once", async t => {
+ t.deepEqual(
+ await eventToMessage({
+ sender: "@cadence:cadence.moe",
+ type: "m.room.message",
+ content: {
+ body: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr",
+ format: "org.matrix.custom.html",
+ formatted_body: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr",
+ msgtype: "m.text"
+ },
+ room_id: "!kLRqKKUQXcibIMtOpl:cadence.moe",
+ event_id: "$p3AOv1eReiSH0g06_8AZ0WH0qSeaGdqwHhiNx_hz-bs",
+ }),
+ {
+ ensureJoined: [],
+ messagesToDelete: [],
+ messagesToEdit: [],
+ messagesToSend: [{
+ username: "cadence [they]",
+ content: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr",
+ avatar_url: undefined
+ }]
+ }
+ )
+})
+
test("event2message: basic html is converted to markdown", async t => {
t.deepEqual(
await eventToMessage({
@@ -2664,7 +2691,7 @@ test("event2message: link to event in an unknown room", async t => {
messagesToEdit: [],
messagesToSend: [{
username: "cadence [they]",
- content: "ah yeah, here's where the bug was reported: [https://matrix.to/#/!QtykxKocfZaZOUrTwp:matrix.org/$1542477546853947KGhZL:matrix.org]()",
+ content: "ah yeah, here's where the bug was reported: ",
avatar_url: undefined
}]
}