1(function(root,factory){if(typeof module==='object'&&module.exports){module.exports=factory()}else{root.wpaeCitations=factory()}}(typeof self!=='undefined'?self:this,function(){'use strict';function safeHref(citation,baseHref){var raw=citation&&citation.post_url;if('string'!==typeof raw||''===raw){return null} 2if(/^\s*\/\//.test(raw)){return null} 3var url;try{url=new URL(raw,baseHref)}catch(e){return null} 4if('http:'!==url.protocol&&'https:'!==url.protocol){return null} 5var anchor=citation.anchor;if('string'===typeof anchor&&''!==anchor){return url.href+'#'+anchor} 6return url.href} 7function renderableCitations(outcome,citations,baseHref){if('completed'!==outcome||!Array.isArray(citations)){return[]} 8var entries=[];for(var i=0;i<citations.length;i++){var citation=citations[i];var href=safeHref(citation,baseHref);if(null===href){continue} 9entries.push({title:'string'===typeof citation.post_title?citation.post_title:'',snippet:'string'===typeof citation.snippet?citation.snippet:'',href:href})} 10return entries} 11return{safeHref:safeHref,renderableCitations:renderableCitations}}))
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.