From f747f5f728607647b3573b09a0c0e5d43a1f60ef Mon Sep 17 00:00:00 2001 From: andrewmbacon Date: Tue, 8 Jul 2014 11:14:23 -0400 Subject: [PATCH] Link Flag Update Switched it from scanning *all* links to only scanning links in a whitelist of selectors. Whitelist is in an array called elementsToScan. --- js/cs.js | 41 ++++++++++++++++++++++++----------------- js/min/cs.min.js | 2 +- style.css | 14 +++++++++----- style.scss | 13 ++++++++----- 4 files changed, 42 insertions(+), 28 deletions(-) diff --git a/js/cs.js b/js/cs.js index f433e44..a374235 100644 --- a/js/cs.js +++ b/js/cs.js @@ -13,9 +13,8 @@ jQuery(document).ready(function($) { var urlExploded = url.split('/') var site = urlExploded[2] var extensions = ['3g2', '3gp', 'avi', 'doc', 'docx', 'dotx', 'gif', 'jpg', 'jpeg', 'm4a', 'mid', 'midi', 'mov', 'mp3', 'mp4', 'mpg', 'odt', 'ogg', 'ogv', 'pdf', 'png', 'ppt', 'pptx', 'xls', 'xlsx', 'wav', 'wmv', 'zip', 'vsd'] - - $('#page a').each(function(){ - //console.log('------------a') + + function scanLinks(){ var href = $(this).attr('href').toLowerCase() var img = $(this).children('img').length var base = null @@ -23,18 +22,13 @@ jQuery(document).ready(function($) { var ext = null var flag = null - // if (((href.charAt(0) != '?') || (href.charAt(0) != '#')) && img == 0 ){ + // if (((href.charAt(0) != '?') || (href.charAt(0) != '#')) && img == 0 ){ if (href.charAt(0) != '#' && img == 0){ if (href.charAt(0) != '/'){ var hrefExploded = href.split('/') base = hrefExploded[2] - if (base != site) { - //console.log('external link detected, adding icon...') - // is external, and is not a named anchor tag - var icon = '' - $(this).addClass('external').prepend(icon) - } + //console.log('checking to see if it might be a file...') last = hrefExploded[hrefExploded.length-1] || '' @@ -51,22 +45,35 @@ jQuery(document).ready(function($) { //console.log('ext:'+ext) flag.append('.'+ext) } - }) - - //console.log('ext:'+ext) } if (flag != null){ $(this).append(flag) - } - + } + if (base != site) { + //console.log('external link detected, adding icon...') + // is external, and is not a named anchor tag + var icon = '' + $(this).addClass('external').append(icon) + } } - - } + } + + // This will only scan elements in these sections of the site. + + var elementsToScan = [ + '#comments', + '#site-navigation', + 'article.page' + ] + + $.each(elementsToScan, function(index, value){ + $(value+' a').each(scanLinks) }) + /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Nav: Neverwrap diff --git a/js/min/cs.min.js b/js/min/cs.min.js index e9d97a1..d75423f 100644 --- a/js/min/cs.min.js +++ b/js/min/cs.min.js @@ -1 +1 @@ -jQuery(document).ready(function(a){function t(t){var e=a("
");e.addClass("alert alert-danger accessibility-fail-msg"),e.width(t.width+"px");var i=a("");i.addClass("glyphicon glyphicon-ban-circle");var n=a("");n.append(' This image needs a valid Alt tag. '),e.append(i).append(n),a(t).after(e)}function e(){var t=document.getElementById("page").clientHeight,e=document.getElementById("footers").clientHeight,i=t+e,n=window.innerHeight;n>=i?a("body").addClass("sticky"):a("body").removeClass("sticky")}var i=location.href,n=i.split("/"),l=n[2],s=["3g2","3gp","avi","doc","docx","dotx","gif","jpg","jpeg","m4a","mid","midi","mov","mp3","mp4","mpg","odt","ogg","ogv","pdf","png","ppt","pptx","xls","xlsx","wav","wmv","zip","vsd"];a("#page a").each(function(){var t=a(this).attr("href").toLowerCase(),e=a(this).children("img").length,i=null,n=null,d=null,p=null;if("#"!=t.charAt(0)&&0==e&&"/"!=t.charAt(0)){var o=t.split("/");if(i=o[2],i!=l){var c='';a(this).addClass("external").prepend(c)}n=o[o.length-1]||"";var r=n.split(".");r[1]&&a.each(s,function(t,e){e==r[1]&&(p=a(''),d=r[1],p.append("."+d))}),null!=p&&a(this).append(p)}}),a("#page img").each(function(){alt=a(this).attr("alt"),alt?(alt=alt.toLowerCase(),(alt.indexOf(".jpg")>=0||alt.indexOf(".png")>=0||alt.indexOf(".gif")>=0)&&(a(this).addClass("accessibility-fail"),t(this))):(a(this).addClass("accessibility-fail"),t(this))}),a("#page table").each(function(){a(this).addClass("table")}),window.onload=function(){if(placeholderSupport="placeholder"in document.createElement("input"),0!=placeholderSupport){var a=document.getElementById("main");a.classList.add("supports-placeholder")}e()},window.onresize=function(){e()}}); \ No newline at end of file +jQuery(document).ready(function(a){function t(){var t=a(this).attr("href").toLowerCase(),e=a(this).children("img").length,i=null,n=null,l=null,p=null;if("#"!=t.charAt(0)&&0==e&&"/"!=t.charAt(0)){var c=t.split("/");i=c[2],n=c[c.length-1]||"";var o=n.split(".");if(o[1]&&a.each(d,function(t,e){e==o[1]&&(p=a(''),l=o[1],p.append("."+l))}),null!=p&&a(this).append(p),i!=s){var r='';a(this).addClass("external").append(r)}}}function e(t){var e=a("
");e.addClass("alert alert-danger accessibility-fail-msg"),e.width(t.width+"px");var i=a("");i.addClass("glyphicon glyphicon-ban-circle");var n=a("");n.append(' This image needs a valid Alt tag. '),e.append(i).append(n),a(t).after(e)}function i(){var t=document.getElementById("page").clientHeight,e=document.getElementById("footers").clientHeight,i=t+e,n=window.innerHeight;n>=i?a("body").addClass("sticky"):a("body").removeClass("sticky")}var n=location.href,l=n.split("/"),s=l[2],d=["3g2","3gp","avi","doc","docx","dotx","gif","jpg","jpeg","m4a","mid","midi","mov","mp3","mp4","mpg","odt","ogg","ogv","pdf","png","ppt","pptx","xls","xlsx","wav","wmv","zip","vsd"],p=["#comments","#site-navigation","article.page"];a.each(p,function(e,i){a(i+" a").each(t)}),a("#page img").each(function(){alt=a(this).attr("alt"),alt?(alt=alt.toLowerCase(),(alt.indexOf(".jpg")>=0||alt.indexOf(".png")>=0||alt.indexOf(".gif")>=0)&&(a(this).addClass("accessibility-fail"),e(this))):(a(this).addClass("accessibility-fail"),e(this))}),a("#page table").each(function(){a(this).addClass("table")}),window.onload=function(){if(placeholderSupport="placeholder"in document.createElement("input"),0!=placeholderSupport){var a=document.getElementById("main");a.classList.add("supports-placeholder")}i()},window.onresize=function(){i()}}); \ No newline at end of file diff --git a/style.css b/style.css index 0a37e86..f9cb106 100755 --- a/style.css +++ b/style.css @@ -179,19 +179,23 @@ img { .flag { background-color: rgba(0, 0, 0, 0.1); font-size: 80%; - padding: .1em .2em; + padding: .2em .3em; margin-left: .4em; - border: 1px solid rgba(0, 0, 0, 0.2); border-radius: .3em; } -.external .glyphicon { +.btn .flag { + border-width: 0; + opacity: .7; +} + +.external .glyphicon-new-window { font-size: .8em; - margin-right: .4em; + margin-left: .4em; opacity: .7; } -.external:hover .glyphicon { +.external:hover .glyphicon-new-window { opacity: 1; } diff --git a/style.scss b/style.scss index b251cff..e810ea5 100644 --- a/style.scss +++ b/style.scss @@ -213,19 +213,22 @@ img { .flag { background-color:rgba(0,0,0, .1); font-size: 80%; - padding: .1em .2em; + padding: .2em .3em; margin-left: .4em; - border:1px solid rgba(0,0,0, .2); border-radius:.3em; } + .btn .flag { + border-width:0; + opacity:.7; + } .external { } - .external .glyphicon { + .external .glyphicon-new-window { font-size:.8em; - margin-right:.4em; + margin-left:.4em; opacity:.7; } - .external:hover .glyphicon { + .external:hover .glyphicon-new-window { opacity:1; }