From 702bef82c14e08e2388ebdb8a8b9ddf4d1ebc00a Mon Sep 17 00:00:00 2001 From: Vishal Kadam Date: Mon, 16 Oct 2017 14:25:34 -0400 Subject: [PATCH] Added option to wrap link a link tag --- extension/pages/options.html | 3 +++ extension/src/json-viewer/highlighter.js | 12 ++++++++++++ extension/src/json-viewer/options/defaults.js | 1 + 3 files changed, 16 insertions(+) diff --git a/extension/pages/options.html b/extension/pages/options.html index 062d24c1..d425966a 100644 --- a/extension/pages/options.html +++ b/extension/pages/options.html @@ -48,6 +48,9 @@

Add-ons

  • "clickableUrls" - Make URLs clickable (boolean). Default true
  • +
  • + "wrapLinkWithAnchorTag" - Add URLs as anchor tag (boolean). Default false +
  • "openLinksInNewWindow" - Open URLs in the same window/tab (boolean). Default true
  • diff --git a/extension/src/json-viewer/highlighter.js b/extension/src/json-viewer/highlighter.js index 50c34ce9..ff7b1d86 100644 --- a/extension/src/json-viewer/highlighter.js +++ b/extension/src/json-viewer/highlighter.js @@ -91,6 +91,14 @@ Highlighter.prototype = { elements.forEach(function(node) { node.classList.add("cm-string-link"); node.setAttribute("data-url", decodedText); + if (self.wrapLinkWithAnchorTag()) { + var linkTag = document.createElement("a"); + linkTag.href = decodedText; + linkTag.setAttribute('target', '_blank') + linkTag.innerHTML = decodedText; + node.innerHTML = ""; + node.appendChild(linkTag); + } }); } }); @@ -200,6 +208,10 @@ Highlighter.prototype = { return this.options.addons.clickableUrls; }, + wrapLinkWithAnchorTag: function() { + return this.options.addons.wrapLinkWithAnchorTag; + }, + openLinksInNewWindow: function() { return this.options.addons.openLinksInNewWindow; }, diff --git a/extension/src/json-viewer/options/defaults.js b/extension/src/json-viewer/options/defaults.js index d57237c2..a3ae3f7e 100644 --- a/extension/src/json-viewer/options/defaults.js +++ b/extension/src/json-viewer/options/defaults.js @@ -7,6 +7,7 @@ module.exports = { alwaysRenderAllContent: false, sortKeys: false, clickableUrls: true, + wrapLinkWithAnchorTag: false, openLinksInNewWindow: true, autoHighlight: true },