80 lines
2.9 KiB
HTML
80 lines
2.9 KiB
HTML
<!DOCTYPE html>
|
|
<html ${htmlAttrs}>
|
|
|
|
<head>
|
|
${head}
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" />
|
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
<link href="https://fonts.googleapis.com/css2?family=Lato&family=Nunito:wght@700&display=swap" rel="stylesheet">
|
|
|
|
<script type="text/javascript">
|
|
window.$crisp = [];
|
|
window.CRISP_WEBSITE_ID = "1a5a5241-91cb-4a41-8323-5ba5ec574da0";
|
|
(function () {
|
|
d = document;
|
|
s = d.createElement("script");
|
|
s.src = "https://client.crisp.chat/l.js";
|
|
s.async = 1;
|
|
d.getElementsByTagName("head")[0].appendChild(s);
|
|
})();
|
|
</script>
|
|
|
|
<!-- MailerLite Universal -->
|
|
<script>
|
|
(function (m, a, i, l, e, r) {
|
|
m['MailerLiteObject'] = e; function f() {
|
|
var c = { a: arguments, q: [] }; var r = this.push(c); return "number" != typeof r ? r : f.bind(c.q);
|
|
}
|
|
f.q = f.q || []; m[e] = m[e] || f.bind(f.q); m[e].q = m[e].q || f.q; r = a.createElement(i);
|
|
var _ = a.getElementsByTagName(i)[0]; r.async = 1; r.src = l + '?v' + (~~(new Date().getTime() / 1000000));
|
|
_.parentNode.insertBefore(r, _);
|
|
})(window, document, 'script', 'https://static.mailerlite.com/js/universal.js', 'ml');
|
|
|
|
var ml_account = ml('accounts', '1778010', 'x2d3d9f8n1', 'load');
|
|
</script>
|
|
<!-- End MailerLite Universal -->
|
|
</head>
|
|
|
|
<body ${bodyAttrs}>
|
|
<script>
|
|
// Add dark / light detection that runs before Vue.js load. Borrowed from overreacted.io
|
|
// for this starter, i used the code from gridsome.org
|
|
// (function () {
|
|
// window.__onThemeChange = function () { };
|
|
|
|
// function setTheme(newTheme) {
|
|
|
|
// window.__theme = newTheme;
|
|
// preferredTheme = newTheme;
|
|
// document.body.setAttribute('data-theme', newTheme);
|
|
|
|
// window.__onThemeChange(newTheme);
|
|
// }
|
|
|
|
// var preferredTheme;
|
|
// try {
|
|
// preferredTheme = localStorage.getItem('theme');
|
|
// } catch (err) { }
|
|
|
|
// window.__setPreferredTheme = function (newTheme) {
|
|
// setTheme(newTheme);
|
|
// try {
|
|
// localStorage.setItem('theme', newTheme);
|
|
// } catch (err) { }
|
|
// }
|
|
|
|
// var darkQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
|
|
// darkQuery.addListener(function (e) {
|
|
// window.__setPreferredTheme(e.matches ? 'dark' : 'light');
|
|
// });
|
|
|
|
// setTheme(preferredTheme || (darkQuery.matches ? 'dark' : 'light'));
|
|
// })();
|
|
</script>
|
|
|
|
${app} ${scripts}
|
|
</body>
|
|
|
|
</html> |