feat: blog build system + all HTML generated by Pi agent
build.js + templates copied from docs, 11 posts built to 14 HTML files. Generated by local Pi orchestrator task. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+132
@@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>{{TITLE}} — Tinqs Blog</title>
|
||||
<meta name="description" content="{{DESCRIPTION}}">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="canonical" href="https://www.tinqs.com/blog/{{SLUG}}">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="https://www.tinqs.com/blog/{{SLUG}}">
|
||||
<meta property="og:title" content="{{TITLE}}">
|
||||
<meta property="og:description" content="{{OG_DESCRIPTION}}">
|
||||
<meta property="og:image" content="{{OG_IMAGE}}">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="{{TITLE}}">
|
||||
<meta name="twitter:description" content="{{OG_DESCRIPTION}}">
|
||||
<meta name="twitter:image" content="{{OG_IMAGE}}">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "{{TITLE}}",
|
||||
"datePublished": "{{DATE_ISO}}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{AUTHOR_NAME}}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Tinqs Limited",
|
||||
"url": "https://www.tinqs.com"
|
||||
},
|
||||
"description": "{{DESCRIPTION}}"
|
||||
}
|
||||
</script>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/img/favicon.svg">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="../style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- NAV -->
|
||||
<nav class="nav nav--scrolled" id="nav">
|
||||
<a href="/" class="nav__logo" aria-label="Tinqs home">
|
||||
<span class="nav__wordmark">TINQS</span>
|
||||
</a>
|
||||
<div class="nav__links">
|
||||
<a href="/#game" class="nav__link">Games</a>
|
||||
<a href="/#tech" class="nav__link">Technology</a>
|
||||
<a href="/#about" class="nav__link">About</a>
|
||||
<a href="/blog/" class="nav__link" style="color: var(--c-accent-l);">Blog</a>
|
||||
<a href="/#signup" class="nav__link">Contact</a>
|
||||
<a href="/press" class="nav__link">Press</a>
|
||||
</div>
|
||||
<button class="nav__burger" aria-label="Open menu" id="navBurger">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
<!-- MOBILE MENU -->
|
||||
<div class="mobile-menu" id="mobileMenu">
|
||||
<a href="/#game" class="mobile-menu__link">Games</a>
|
||||
<a href="/#tech" class="mobile-menu__link">Technology</a>
|
||||
<a href="/#about" class="mobile-menu__link">About</a>
|
||||
<a href="/blog/" class="mobile-menu__link">Blog</a>
|
||||
<a href="/#signup" class="mobile-menu__link">Contact</a>
|
||||
<a href="/press" class="mobile-menu__link">Press</a>
|
||||
</div>
|
||||
|
||||
<!-- POST -->
|
||||
<article class="post">
|
||||
<a href="/blog/" class="post__back">← All Posts</a>
|
||||
<span class="post__date">{{DATE_DISPLAY}}</span>
|
||||
<h1 class="post__title">{{TITLE}}</h1>
|
||||
<p class="post__lead">{{LEAD}}</p>
|
||||
|
||||
<div class="post__body">
|
||||
{{BODY}}
|
||||
</div>
|
||||
|
||||
<div class="post__author">
|
||||
<div class="post__author-avatar">{{AUTHOR_INITIALS}}</div>
|
||||
<div class="post__author-info">
|
||||
<span class="post__author-name">{{AUTHOR_NAME}}</span><br>
|
||||
{{AUTHOR_ROLE}}
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<!-- FOOTER -->
|
||||
<footer class="footer">
|
||||
<div class="footer__inner">
|
||||
<span class="footer__wordmark">TINQS</span>
|
||||
<div class="footer__links">
|
||||
<a href="/#game">Games</a>
|
||||
<a href="/#tech">Technology</a>
|
||||
<a href="/#about">About</a>
|
||||
<a href="/blog/">Blog</a>
|
||||
<a href="mailto:hello@tinqs.com">hello@tinqs.com</a>
|
||||
<a href="/press">Press Kit</a>
|
||||
</div>
|
||||
<p class="footer__copy">Tinqs Limited — London, est. 2020</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
const burger = document.getElementById('navBurger');
|
||||
const mobileMenu = document.getElementById('mobileMenu');
|
||||
burger.addEventListener('click', () => {
|
||||
const open = mobileMenu.classList.toggle('mobile-menu--open');
|
||||
burger.classList.toggle('nav__burger--open', open);
|
||||
document.body.style.overflow = open ? 'hidden' : '';
|
||||
});
|
||||
mobileMenu.querySelectorAll('a').forEach(link => {
|
||||
link.addEventListener('click', () => {
|
||||
mobileMenu.classList.remove('mobile-menu--open');
|
||||
burger.classList.remove('nav__burger--open');
|
||||
document.body.style.overflow = '';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
After
|
Reference in New Issue
Block a user