diff --git a/index.ts b/index.ts
index 711dea2..354ed08 100644
--- a/index.ts
+++ b/index.ts
@@ -2,6 +2,7 @@ import '@logseq/libs';
const DEFAULT_REGEX = {
wrappedInCommand: /(\{\{(video)\s*(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})\s*\}\})/gi,
+ wrappedInCodeTags: /((`|```).*(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,}).*(`|```))/gi,
htmlTitleTag: /
]+)*>([^<]*)<\/title>/,
line: /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/gi,
imageExtension: /\.(gif|jpe?g|tiff?|png|webp|bmp|tga|psd|ai)$/i,
@@ -67,6 +68,15 @@ function isAlreadyFormatted(text, url, urlIndex, formatBeginning) {
return text.slice(urlIndex - 2, urlIndex) === formatBeginning;
}
+function isWrappedInCodeTags(text, url) {
+ const wrappedLinks = text.match(DEFAULT_REGEX.wrappedInCodeTags);
+ if (!wrappedLinks) {
+ return false;
+ }
+
+ return wrappedLinks.some(command => command.includes(url));
+}
+
function isWrappedInCommand(text, url) {
const wrappedLinks = text.match(DEFAULT_REGEX.wrappedInCommand);
if (!wrappedLinks) {
@@ -110,7 +120,7 @@ async function parseBlockForLink(uuid: string) {
for (const url of urls) {
const urlIndex = text.indexOf(url, offset);
- if (isAlreadyFormatted(text, url, urlIndex, formatSettings.formatBeginning) || isImage(url) || isWrappedInCommand(text, url)) {
+ if (isAlreadyFormatted(text, url, urlIndex, formatSettings.formatBeginning) || isImage(url) || isWrappedInCommand(text, url) || isWrappedInCodeTags(text, url)) {
continue;
}