From 2022ddab9c69ac02249cec1ee10976ec53274a5e Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Sep 2016 09:59:03 +0200 Subject: [PATCH] clickable URLs. fixes #262 --- htdocs/themes/default/js/linkify-jquery.min.js | 1 + htdocs/themes/default/js/linkify.min.js | 1 + htdocs/themes/default/js/stikked.js | 5 +++++ htdocs/themes/default/views/defaults/footer.php | 2 ++ htdocs/themes/default/views/view/view_footer.php | 2 ++ 5 files changed, 11 insertions(+) create mode 100644 htdocs/themes/default/js/linkify-jquery.min.js create mode 100644 htdocs/themes/default/js/linkify.min.js diff --git a/htdocs/themes/default/js/linkify-jquery.min.js b/htdocs/themes/default/js/linkify-jquery.min.js new file mode 100644 index 0000000..b67d661 --- /dev/null +++ b/htdocs/themes/default/js/linkify-jquery.min.js @@ -0,0 +1 @@ +"use strict";!function(e,t,n){var i=function(t,n){function i(e,t,n){var i=n[n.length-1];e.replaceChild(i,t);for(var r=n.length-2;r>=0;r--)e.insertBefore(n[r],i),i=n[r]}function r(e,t,n){for(var i=[],r=e,a=Array.isArray(r),o=0,r=a?r:r[Symbol.iterator]();;){var l;if(a){if(o>=r.length)break;l=r[o++]}else{if(o=r.next(),o.done)break;l=o.value}var f=l;if("nl"===f.type&&t.nl2br)i.push(n.createElement("br"));else if(f.isLink&&t.check(f)){var s=t.resolve(f),c=s.formatted,u=s.formattedHref,d=s.tagName,m=s.className,y=s.target,h=s.events,k=s.attributes,v=n.createElement(d);if(v.setAttribute("href",u),m&&v.setAttribute("class",m),y&&v.setAttribute("target",y),k)for(var g in k)v.setAttribute(g,k[g]);if(h)for(var b in h)v.addEventListener?v.addEventListener(b,h[b]):v.attachEvent&&v.attachEvent("on"+b,h[b]);v.appendChild(n.createTextNode(c)),i.push(v)}else i.push(n.createTextNode(f.toString()))}return i}function a(e,t,n){if(!e||e.nodeType!==d)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var o=t.ignoreTags;if("A"===e.tagName||s.contains(o,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case d:a(l,t,n);break;case m:var c=l.nodeValue,y=f(c);if(0===y.length||1===y.length&&y[0]instanceof u)break;var h=r(y,t,n);i(e,l,h),l=h[h.length-1]}l=l.nextSibling}return e}function o(t,n){var i=!(arguments.length<=2||void 0===arguments[2])&&arguments[2];try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=new c(n),a(t,n,i)}function l(t){function n(e){return e=o.normalize(e),this.each(function(){o.helper(this,e,i)})}var i=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];t.fn=t.fn||{};try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof t.fn.linkify&&(t.fn.linkify=n,t(i).ready(function(){t("[data-linkify]").each(function(){var e=t(this),n=e.data(),i=n.linkify,r=n.linkifyNlbr,a={attributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,className:n.linkifyClassName||n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},o="this"===i?e:e.find(i);o.linkify(a)})}))}var f=n.tokenize,s=n.options,c=s.Options,u=n.parser.TOKENS.TEXT,d=1,m=3;o.helper=a,o.normalize=function(e){return new c(e)};try{!define&&(e.linkifyElement=o)}catch(y){}return l}(n,t);"function"!=typeof n.fn.linkify&&i(n)}(window,linkify,jQuery); \ No newline at end of file diff --git a/htdocs/themes/default/js/linkify.min.js b/htdocs/themes/default/js/linkify.min.js new file mode 100644 index 0000000..377d412 --- /dev/null +++ b/htdocs/themes/default/js/linkify.min.js @@ -0,0 +1 @@ +!function(){"use strict";var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t};!function(e){function n(t,e){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],o=Object.create(t.prototype);for(var a in n)o[a]=n[a];return o.constructor=e,e.prototype=o,e}function o(t){t=t||{},this.defaultProtocol=t.defaultProtocol||g.defaultProtocol,this.events=t.events||g.events,this.format=t.format||g.format,this.formatHref=t.formatHref||g.formatHref,this.nl2br=t.nl2br||g.nl2br,this.tagName=t.tagName||g.tagName,this.target=t.target||g.target,this.validate=t.validate||g.validate,this.ignoreTags=[],this.attributes=t.attributes||t.linkAttributes||g.attributes,this.className=t.className||t.linkClass||g.className;for(var e=t.ignoreTags||g.ignoreTags,n=0;n=r)return[];for(;a=0&&u++,c++,a++;if(!(u<0)){a-=u,c-=u;var h=l.emit();o.push(new h(t.substr(a-c,c)))}}return o},gt=Z,pt=Object.freeze({State:m,TOKENS:M,run:ht,start:gt}),ft=l();ft.prototype={type:"token",isLink:!1,toString:function(){for(var t=[],e=0;e=0&&u++,n++,c++;if(u<0)for(var h=n-c;h0&&(o.push(new dt(a)),a=[]),n-=u,c-=u;var g=l.emit();o.push(new g(t.slice(n-c,n)))}}return a.length>0&&o.push(new dt(a)),o},te=Object.freeze({State:d,TOKENS:yt,run:$t,start:wt});Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)});var ee=function(t){return $t(ht(t))},ne=function(t){for(var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1],n=ee(t),o=[],a=0;acarabiner->js('jquery.timers.js'); $this->carabiner->js('crypto-js/rollups/aes.js'); $this->carabiner->js('lz-string-1.3.3-min.js'); $this->carabiner->js('filereader.js'); +$this->carabiner->js('linkify.min.js'); +$this->carabiner->js('linkify-jquery.min.js'); if(config_item('js_editor') == 'codemirror') { $this->carabiner->js('codemirror/codemirror.js'); } diff --git a/htdocs/themes/default/views/view/view_footer.php b/htdocs/themes/default/views/view/view_footer.php index a8462dd..dc9d437 100644 --- a/htdocs/themes/default/views/view/view_footer.php +++ b/htdocs/themes/default/views/view/view_footer.php @@ -17,6 +17,8 @@ $this->carabiner->js('jquery.timers.js'); $this->carabiner->js('crypto-js/rollups/aes.js'); $this->carabiner->js('lz-string-1.3.3-min.js'); $this->carabiner->js('filereader.js'); +$this->carabiner->js('linkify.min.js'); +$this->carabiner->js('linkify-jquery.min.js'); if(config_item('js_editor') == 'codemirror') { $this->carabiner->js('codemirror/codemirror.js'); }