refactor link parser to support lxmf links without a name

This commit is contained in:
liamcottle 2024-09-23 00:13:21 +12:00
commit 57ec2b5cc1

View file

@ -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 `<a href="${url}" onclick="event.preventDefault(); onNodePageUrlClick('${linkUrl}')">${linkText}</a>`
// `[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 `<a href="${formattedUrl}" onclick="event.preventDefault(); onNodePageUrlClick('${url}')">${url}</a>`
} else if(linkParts.length === 2){
const text = linkParts[0];
const url = linkParts[1];
const formattedUrl = MicronParser.formatNomadnetworkUrl(url);
return `<a href="${formattedUrl}" onclick="event.preventDefault(); onNodePageUrlClick('${url}')">${text}</a>`
} else if(linkParts.length === 3){
const text = linkParts[0];
const url = linkParts[1] + "`" + linkParts[2]; // includes data
const formattedUrl = MicronParser.formatNomadnetworkUrl(url);
return `<a href="${formattedUrl}" onclick="event.preventDefault(); onNodePageUrlClick('${url}')">${text}</a>`
} else {
return "";
}
});
// parse markdown links