From 57ec2b5cc10e8f6422a8e91458d0f8dffc20bdaf Mon Sep 17 00:00:00 2001 From: liamcottle Date: Mon, 23 Sep 2024 00:13:21 +1200 Subject: [PATCH] refactor link parser to support lxmf links without a name --- .../public/assets/js/micron-parser.js | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/frontend/public/assets/js/micron-parser.js b/src/frontend/public/assets/js/micron-parser.js index 51d9668..a34cfed 100644 --- a/src/frontend/public/assets/js/micron-parser.js +++ b/src/frontend/public/assets/js/micron-parser.js @@ -74,10 +74,31 @@ class MicronParser { // parse micron links // `[ ◈ The Future of RNode: A New Model`:/page/posts/2022_06_27.mu] + // `[Home`:/page/index.mu`page=Home] + // `[Games`:/page/index.mu`page=Games] // `[Hangman`:/page/Games/Hangman.mu]` - line = line.replaceAll(/`\[(.*?)`(.*?)\](?:`)?/g, function(match, linkText, linkUrl) { - const url = MicronParser.formatNomadnetworkUrl(linkUrl); - return `${linkText}` + // `[lxmf@7b746057a7294469799cd8d7d429676a] + // `[Liam`lxmf@7b746057a7294469799cd8d7d429676a] + line = line.replaceAll(/`\[(.*?)\]/g, function(match, linkContent) { + const linkParts = linkContent.split("`"); + console.log(linkParts); + if(linkParts.length === 1){ + const url = linkParts[0]; + const formattedUrl = MicronParser.formatNomadnetworkUrl(url); + return `${url}` + } else if(linkParts.length === 2){ + const text = linkParts[0]; + const url = linkParts[1]; + const formattedUrl = MicronParser.formatNomadnetworkUrl(url); + return `${text}` + } else if(linkParts.length === 3){ + const text = linkParts[0]; + const url = linkParts[1] + "`" + linkParts[2]; // includes data + const formattedUrl = MicronParser.formatNomadnetworkUrl(url); + return `${text}` + } else { + return ""; + } }); // parse markdown links