simple-ampify
Version:
A simple plain HTML to AMP converter for personal use
3 lines (2 loc) • 2.95 kB
JavaScript
export default(t,a)=>{t=t.replace(/<html/gi,"<html ⚡");let e="";const i=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<style[^>]*data-vue-ssr[^>]*>(.*?)?<\/style>/gi,(t,a)=>(e+=a,""))).replace(/<style\>(.*?)?<\/style>/gi,(t,a)=>(e=a+e,""))).replace(/<link[^>]*rel="(?:preload|prefetch)?"[^>]*>/gi,"")).replace(/<link[^>]*rel="(?:amphtml)?"[^>]*>/gi,"")).replace(/<img([^>]*)>/gi,(t,a)=>`<amp-img ${a} layout=responsive></amp-img>`)).replace(/\s*data-(v|n)-(?:[^=>]*="[^"]*"|[^=>\s]*)/gi,"")).replace(/javascript:void\(0\)/gi,"#")).replace(/<div[^>]*name=(?:[^=>]*="[^"]*"|[^=>\s]*)/gi,t=>t.replace(/name/gi,"data-name"))).replace(/<a[^>]*source="[a-z|-]*"/gi,t=>t.replace(/source=/gi,"data-source="))).replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,t=>/application\/ld\+json/gi.test(t)?t:"")).includes("amp-accordion");return t=(t=t.replace("</head>",((t,a,e)=>{let i='<script async src="https://cdn.ampproject.org/v0.js"><\/script>';return t&&(i+='<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"><\/script>'),a&&(i+='<script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"><\/script>'),e&&(i+='<script async custom-element="amp-accordion" src="https://cdn.ampproject.org/v0/amp-accordion-0.1.js"><\/script>'),i})(Boolean(a&&a.analytics),Boolean(a&&a.adsense),i)+"</head>")).replace("</head>",`\n\t<style amp-custom>\n\t\t${e.replace(/\[data-v-[a-z|\d|\s]*]/gi,"").replace(/!important/gi,"")}\n\t</style>\n\n\t<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>\n\n\t</head>`),a&&a.analytics&&a.analytics.id&&(t=t.replace("</body>",`\n\t\t\t<amp-analytics type='googleanalytics'>\n\t\t\t<script type='application/json'>\n\t\t\t\t{\n\t\t\t\t\t"vars": {\n\t\t\t\t\t\t"account": "${a.analytics.id}"\n\t\t\t\t\t},\n\t\t\t\t\t"triggers": {\n\t\t\t\t\t\t"trackPageview": {\n\t\t\t\t\t\t\t"on": "visible",\n\t\t\t\t\t\t\t"request": "pageview"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t<\/script>\n\t\t</amp-analytics>\n\t</body>`)),a&&a.adsense&&a.adsense.id&&(t=t.replace("</body>",`\n\t\t\t<amp-auto-ads type="adsense" data-ad-client="${a.adsense.id}"></amp-auto-ads>\n\t</body>`)),t};
//# sourceMappingURL=ampify.modern.js.map