This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / appview / pages / templates / timeline / timeline.html
2.4 kB 77 lines
1{{ define "title" }}timeline{{ end }} 2 3{{ define "extrameta" }} 4 <meta property="og:title" content="timeline · tangled" /> 5 <meta property="og:type" content="object" /> 6 <meta property="og:url" content="https://tangled.org" /> 7 <meta property="og:description" content="tightly-knit social coding" /> 8{{ end }} 9 10{{ define "mainLayout" }} 11<div class="flex-grow"> 12 <div class="max-w-screen-xl mx-auto flex flex-col gap-4"> 13 <main>{{ block "content" . }}{{ end }}</main> 14 </div> 15</div> 16{{ end }} 17 18{{ define "content" }} 19<div class="lg:hidden"> 20 {{ template "timeline/fragments/newsletter" . }} 21 {{ template "timeline/fragments/goodfirstissues" . }} 22 {{ template "timeline/fragments/trending" . }} 23 {{ template "timeline/fragments/timeline" . }} 24</div> 25 26<div class="hidden lg:grid grid-cols-3 gap-x-2 gap-y-6"> 27 <div id="gfi-banner" class="col-span-3 max-w-4xl w-full mx-auto"> 28 {{ template "timeline/fragments/goodfirstissues" . }} 29 </div> 30 <div id="newsletter-widget-col" class="pl-8 flex-col hidden"> 31 {{ template "timeline/fragments/newsletterWidget" . }} 32 </div> 33 34 <div class="col-span-2 flex flex-col"> 35 {{ template "timeline/fragments/timeline" . }} 36 </div> 37 <div class="flex flex-col gap-6 pl-8"> 38 {{ template "timeline/fragments/trendingSidebar" . }} 39 </div> 40</div> 41 42<script> 43 (function() { 44 var gfi = document.getElementById('gfi-banner'); 45 var col = document.getElementById('newsletter-widget-col'); 46 if (!gfi || !col) return; 47 48 function showNewsletter() { 49 col.classList.remove('hidden'); 50 col.classList.add('flex'); 51 gfi.classList.remove('col-span-3', 'max-w-4xl', 'mx-auto'); 52 gfi.classList.add('col-span-2'); 53 } 54 55 function hideNewsletter() { 56 col.classList.add('hidden'); 57 col.classList.remove('flex'); 58 gfi.classList.remove('col-span-2'); 59 gfi.classList.add('col-span-3', 'max-w-4xl', 'mx-auto'); 60 } 61 62 // If the newsletter widget is still in the DOM, switch to two-column 63 if (document.getElementById('newsletter-widget')) { 64 showNewsletter(); 65 } 66 67 // Watch for mid-session dismissal 68 var obs = new MutationObserver(function() { 69 if (!document.getElementById('newsletter-widget')) { 70 hideNewsletter(); 71 obs.disconnect(); 72 } 73 }); 74 obs.observe(col, { childList: true, subtree: true }); 75 })(); 76</script> 77{{ end }}