Raw File
PFMetaDataParser.min.js
window.pfMetaData={self:this,title:"",description:"",image:"",author:"",feed:"",canonical:"",keywords:[],openGraph:{title:"",type:"article"},twitter:{title:""},jsonLD:{},checkForProp:function(e){return!(null==e||!1===e||e.length<1)},init:function(){var e=window.pfMetaData;e.title=document.title,e.processMeta(),e.processLinks(),e.processJSONLD(),e.assureMajorMetadataFilled()},assureMajorMetadataFilled:function(){var e=window.pfMetaData;!1===e.cascadeMetaValues("title")&&e.checkForProp(e.jsonLD.headline)&&(e.title=e.jsonLD.headline),!1===e.cascadeMetaValues("description")&&e.checkForProp(e.jsonLD.description)&&(e.description=e.jsonLD.description),!1===e.cascadeMetaValues("author")&&e.checkForProp(e.jsonLD.author)&&e.checkForProp(e.jsonLD.author.name)&&(e.author=e.jsonLD.author.name),!1===e.cascadeMetaValues("image")&&e.checkForProp(e.jsonLD.image)&&e.checkForProp(e.jsonLD.image[0])&&(e.image=e.jsonLD.image[0]),!1===e.checkForProp("canonical")&&(e.checkForProp(e.openGraph.url)?e.canonical=e.openGraph.url:e.checkForProp(e.jsonLD.mainEntityOfPage)&&e.checkForProp(e.jsonLD.mainEntityOfPage["@id"])&&(e.canonical=e.jsonLD.mainEntityOfPage["@id"])),!1!==e.checkForProp(e.openGraph.section)&&e.keywords.push(e.openGraph.section),!1!==e.checkForProp(e.openGraph.tag)&&(e.keywords=e.keywords.concat(e.openGraph.tag));var t,o=document.querySelector('meta[name="keywords"]');null!=o&&(t=o.content,e.keywords=e.keywords.concat(t.split(",")))},cascadeMetaValues:function(e){var t=window.pfMetaData;if(!t.checkForProp(t[e]))if(t.checkForProp(t.openGraph[e]))t[e]=t.openGraph[e];else{if(!t.checkForProp(t.twitter[e]))return!1;t[e]=t.twitter[e]}return!0},processOpenGraphTag:function(e,t){var o=window.pfMetaData,a=t.length;a+=1;var n,r=document.querySelectorAll('meta[property="'+e+'"]');0<r.length&&(console.log(r),"og:type"===e&&r[0]&&r[0].length&&r[0].hasOwnPropery("content")||1===r.length?o.openGraph[e.substring(a)]=r[0].content:1<r.length&&(n=e.substring(a),o.openGraph[n]=[],r.forEach(function(e){o.openGraph[n].push(e.content)})))},processMeta:function(){var e=window.pfMetaData,o=document.getElementsByTagName("meta");["author","description"].forEach(function(e){var t=window.pfMetaData;void 0!==o[e]&&(t[e]=o[e].content)});["twitter:card","twitter:creator","twitter:description","twitter:image","twitter:site","twitter:title"].forEach(function(e){window.pfMetaData;void 0!==o[e]&&(window.pfMetaData.twitter[e.substring(8)]=o[e].content)});["og:title","og:site_name","og:description","og:url","og:locale","og:type","og:image"].forEach(function(e){window.pfMetaData.processOpenGraphTag(e,"og")}),[e.openGraph.type+":published_time",e.openGraph.type+":author",e.openGraph.type+":publisher",e.openGraph.type+":section",e.openGraph.type+":tag",e.openGraph.type+":image"].forEach(function(e){var t=window.pfMetaData;t.processOpenGraphTag(e,t.openGraph.type)})},processLink:function(e){var t=document.head.querySelector("link["+e+"]");return null!==t&&t.href},processLinks:function(){var e=window.pfMetaData;e.canonical=e.processLink('rel="canonical"'),e.feed=e.processLink('type="application/rss+xml"')},processJSONLD:function(){var e=window.pfMetaData,t=document.head.querySelector('script[type="application/ld+json"]');null!==t&&(e.jsonLD=JSON.parse(t.innerHTML))}},window.pfMetaData.init();
back to top