source code of my personal website luthenwald.github.io/
ssg
at prima 57 lines 3.3 kB view raw
1<!DOCTYPE html> 2<html lang="en" data-theme="light"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>home</title> 7 <link rel="stylesheet" href="styles/reset.css"> 8 <link rel="stylesheet" href="styles/prima.css"> 9</head> 10<body class="home-page"> 11 <aside class="outline-sidebar"> 12 <div class="spacer"></div> 13 <nav class="bottom-nav"> 14 <a href="index.html">Home</a> 15 <a href="tags/tagcloud.html">Tags</a> 16 <a href="feed.xml">Feed</a> 17 <a href="#" id="theme-toggle" title="toggle theme">Theme</a> 18 </nav> 19 </aside> 20 <main class="main-content"> 21 <h1>all posts</h1> 22 <article class="blog-entry"> 23 <h2><a href="blogs/jj-ssh.html">Setting up jjvcs collaboration between local machines via ssh</a></h2> 24 <div class="date">2025-12-22</div> 25 <div class="description">about how i collaborate between 2 ⟅laptops|identities|personae⟆ using jjvcs & ssh without hosting services.</div> 26 <div class="tags"><a href="tags/fish.html">fish</a>, <a href="tags/jjvcs.html">jjvcs</a>, <a href="tags/ssh.html">ssh</a>, <a href="tags/workflow.html">workflow</a>, <a href="tags/2025.html">2025</a></div> 27 </article> 28 <article class="blog-entry"> 29 <h2><a href="blogs/effect-kleisli.html">Effect is Kleisli, etymologically</a></h2> 30 <div class="date">2025-11-26</div> 31 <div class="description">It's pretty intriguing that the Effect type in this blog is exactly the traditional Kleisli type in haskell. We'll further show that Monad is the constraint we need to form the valid Effect category. If you are wondering about the meaning of effects in the haskell world, I believe this blog will help gain some understanding.</div> 32 <div class="tags"><a href="tags/effect-system.html">effect-system</a>, <a href="tags/haskell.html">haskell</a>, <a href="tags/monad.html">monad</a>, <a href="tags/2025.html">2025</a></div> 33 </article> 34 <article class="blog-entry"> 35 <h2><a href="blogs/hindley-milner.html">Hindley-milner type system demystified</a></h2> 36 <div class="date">2025-10-13</div> 37 <div class="description">a guide to hindley-milner type system: types, unification & algorithm w with haskell implementation</div> 38 <div class="tags"><a href="tags/haskell.html">haskell</a>, <a href="tags/hindley-milner.html">hindley-milner</a>, <a href="tags/type-system.html">type-system</a>, <a href="tags/2025.html">2025</a></div> 39 </article> 40 </main> 41 <script> 42 document.addEventListener('DOMContentLoaded', function() { 43 const themeToggle = document.getElementById('theme-toggle'); 44 const html = document.documentElement; 45 const savedTheme = localStorage.getItem('theme') || 'light'; 46 html.setAttribute('data-theme', savedTheme); 47 themeToggle.addEventListener('click', function(e) { 48 e.preventDefault(); 49 const currentTheme = html.getAttribute('data-theme'); 50 const newTheme = currentTheme === 'light' ? 'dark' : 'light'; 51 html.setAttribute('data-theme', newTheme); 52 localStorage.setItem('theme', newTheme); 53 }); 54 }); 55 </script> 56</body> 57</html>