commit 3355a07

merc  ·  2026-07-12 20:08:05 +0000 UTC
parent 3355a07
init
39 files changed,  +293, -0
+5, -0
1@@ -0,0 +1,5 @@
2+## this repo contains the sources for my website hosted at:
3+- <https://merc.guru>
4+- <https://merc.4plt.ch>
5+
6+* `config.env` for use with <https://srcdump.net/merc/ssg> is included
+10, -0
 1@@ -0,0 +1,10 @@
 2+#!/bin/sh
 3+EXCLUDE="_sync.sh config.env .git"
 4+tmp=$(mktemp -d)
 5+cp -r ./public/. "$tmp/"
 6+for i in $EXCLUDE; do rm -rf "$tmp/$i"; done
 7+scp -r "$tmp/." merc@4plt.ch:~/public_html/
 8+rm -rf "$tmp"
 9+
10+# fyi, this is for pushing changes to https://4plt.ch
11+# probably not needed for whoever is seeing this
+9, -0
 1@@ -0,0 +1,9 @@
 2+TITLE=~merc
 3+FOOTER=made with love / rewritten using acme / built using <a href="https://github.com/foobar-p5/merc">merc</a> / <a href="https://4plt.ch/">go back to 4plt</a> / <a href="/">root</a>
 4+INPUT=/home/merc/dev/_test/merc-4plt/src
 5+OUTPUT=public
 6+NAVDIR=
 7+NAVFILE=
 8+NAVCURRENT=
 9+
10+# the NAV* variables are not used in my locally-modified version of build.sh
+0, -0
+0, -0
+0, -0
+0, -0
+0, -0
+0, -0
+0, -0
+22, -0
 1@@ -0,0 +1,22 @@
 2+document.addEventListener("DOMContentLoaded", function() {
 3+    function rnd(el) {
 4+        const text = el.textContent;
 5+        el.innerHTML = text.split("").map(function(char) {
 6+            if (char.trim() === "") return char;
 7+            const rot = (Math.random() - 0.5) * 4;
 8+            const size = 0.85 + Math.random() * 0.1;
 9+            return `<span style="display:inline-block;transform-origin:center;transform:rotate(${rot}deg) scale(${size});">${char}</span>`;
10+        }).join("");
11+    }
12+
13+    const rfontEl = document.querySelectorAll(".rfont, h1, h2, h3, h4, h5, h6");
14+    rfontEl.forEach(function(el) {
15+        rnd(el);
16+    });
17+
18+    setInterval(function() {
19+        rfontEl.forEach(function(el) {
20+            rnd(el);
21+        });
22+    }, 150);
23+});
+2, -0
1@@ -0,0 +1,2 @@
2+will rework later  
3+irc @ irc.ergo.chat : merc
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![avg_siberia](avg_siberia.jpg)](avg_siberia.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![buttery](buttery.jpg)](buttery.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![hrusch](hrusch.jpg)](hrusch.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![mc_road](mc_road.jpg)](mc_road.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![metro](metro.jpg)](metro.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![powerline](powerline.jpg)](powerline.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![remnants](remnants.jpg)](remnants.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![sciezka](sciezka.jpg)](sciezka.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![serving](serving.jpg)](serving.jpg)
+0, -0
+1, -0
1@@ -0,0 +1 @@
2+[![triumph_palace](triumph_palace.jpg)](triumph_palace.jpg)
+1, -0
1@@ -0,0 +1 @@
2+[![bashthatshit](bashthatshit.png)](bashthatshit.png)
+0, -0
+4, -0
1@@ -0,0 +1,4 @@
2+hi.  
3+nothing to see on the home page yet.
4+
5+navigate using the sidebar.
+5, -0
1@@ -0,0 +1,5 @@
2+just a shell-based static site generator.  
3+this site was built using merc - says that at the bottom of ur screen.  
4+pretty proud of this, somewhat.
5+
6+link: <https://github.com/foobar-p5/merc>
+5, -0
1@@ -0,0 +1,5 @@
2+a pretty simple and minimal (if we don't count the miniaudio lib) music player for the cli, written in C  
3+i've personally been using it for a day ever since it was at a point where it could actually be used by someone  
4+(date of posting since that time: exactly 1 day || 2026-06-09)
5+
6+link: <https://github.com/foobar-p5/rudis>
+192, -0
  1@@ -0,0 +1,192 @@
  2+:root {
  3+  --bg: #ffffff;
  4+  --fg: #292929;
  5+  --fg-mute: #d4d4d4;
  6+  --fg-link: #782a2a;
  7+
  8+  --subtext: 12px;
  9+  --default: 18px;
 10+  --header: 48px;
 11+}
 12+
 13+@font-face {
 14+  src: url('/.assets/pprsm.otf') format('opentype');
 15+  font-family: ppright;
 16+  font-weight: normal;
 17+  font-style: normal;
 18+  font-display: block;
 19+}
 20+
 21+@font-face {
 22+  src: url('/.assets/is.ttf') format('opentype');
 23+  font-family: instrument;
 24+  font-weight: normal;
 25+  font-style: normal;
 26+  font-display: block;
 27+}
 28+
 29+body {
 30+  cursor: url('/.assets/left_ptr.png'), auto;
 31+  display: flex;
 32+  flex-direction: column;
 33+  font-family: ppright, serif;
 34+  font-size: var(--default);
 35+  background: var(--bg);
 36+  color: var(--fg);
 37+  height: 100vh;
 38+  margin: 0;
 39+  overflow: hidden;
 40+}
 41+
 42+img {
 43+  object-fit: contain;
 44+  max-height: 80vh;
 45+  max-width: 100%;
 46+  height: auto;
 47+  width: auto;
 48+}
 49+
 50+.mcontain {
 51+  display: flex;
 52+  flex-direction: row;
 53+  position: absolute;
 54+  top: 0;
 55+  left: 0;
 56+  padding: 10px;
 57+  gap: 20px;
 58+  width: 100%;
 59+  height: calc(100vh - 50px);
 60+  box-sizing: border-box;
 61+}
 62+
 63+.mheader {
 64+  font-size: var(--header);
 65+  font-family: instrument;
 66+  margin-bottom: 5px;
 67+}
 68+
 69+.lcontain {
 70+  flex-shrink: 0;
 71+  width: 200px;
 72+  margin: auto 0;
 73+  margin-left: 40px;
 74+}
 75+
 76+.lcontain a {
 77+  text-decoration: none;
 78+}
 79+
 80+.lcontain ul {
 81+  list-style: none;
 82+  padding: 0;
 83+  margin: 0;
 84+}
 85+
 86+.lcontain ul ul {
 87+  padding-left: 20px;
 88+}
 89+
 90+.lcontain li {
 91+  margin: 4px 0;
 92+}
 93+
 94+.lcontain .liactive {
 95+  background: var(--fg-link);
 96+  color: var(--bg);
 97+}
 98+
 99+.lcontain .liactive::first-letter {
100+  text-decoration: none;
101+}
102+
103+.ccontain {
104+  flex: 0 1 auto;
105+  height: fit-content;
106+  margin: auto 0;
107+  overflow-y: auto;
108+  padding: 0 10px;
109+  background: var(--fg-mute);
110+}
111+
112+.bcontain {
113+  display: flex;
114+  justify-content: right;
115+  align-items: right;
116+  background: var(--bg);
117+  position: fixed;
118+  bottom: 0;
119+  width: 100vw;
120+  padding: 0;
121+  box-sizing: border-box;
122+}
123+
124+.bcontain footer {
125+  flex: 1;
126+  padding: 10px;
127+  font-size: var(--default);
128+  box-sizing: border-box;
129+  text-align: right;
130+  background: var(--bg);
131+}
132+
133+header {
134+  font-size: var(--header);
135+  letter-spacing: 0.4rem;
136+}
137+
138+.logo {
139+  max-width: 300px;
140+  max-height: 60vh;
141+  width: auto;
142+  height: auto;
143+}
144+
145+a {
146+  cursor: url('/.assets/arrow_up.png'), pointer;
147+  display: inline-block;
148+  filter: drop-shadow(1px 1px 0 var(--fg-mute));
149+  color: var(--fg);
150+  position: relative;
151+  text-decoration: none;
152+}
153+
154+a::before {
155+  position: absolute;
156+  content: '';
157+  z-index: -1;
158+  top: 0;
159+  left: 0;
160+  width: 0%;
161+  height: 100%;
162+  background: var(--fg-link);
163+  transition: width 0.1s ease; 
164+}
165+
166+a::first-letter {
167+  background: var(--fg-link);
168+  color: var(--bg);
169+  text-decoration: underline;
170+}
171+
172+a:hover {
173+  text-decoration: underline;
174+  color: var(--bg);
175+}
176+
177+a:hover::before {
178+  width: 100%;
179+}
180+
181+h1, h2, h3, h4, h5, h6 {
182+  font-family: instrument, serif;
183+}
184+
185+.highlight {
186+  color: var(--fg-link);
187+}
188+.italic {
189+  font-style: italic;
190+}
191+.bold {
192+  font-weight: bold;
193+}
+28, -0
 1@@ -0,0 +1,28 @@
 2+<!DOCTYPE html>
 3+<html>
 4+<head>
 5+  <meta charset="UTF-8">
 6+  <meta property="og:type" content="website">
 7+  <meta property="og:url" content="https://merc.4plt.ch/">
 8+  <meta property="og:title" content="{{TITLE}}">
 9+  <meta property="og:description" content="under construction | made with love">
10+  <meta property="og:image" content="https://merc.4plt.ch/.assets/logo-small.png">
11+  <title>4plt/merc</title>
12+  <link rel="icon" href="/.assets/favicon.ico" type="image/x-icon">
13+  <link rel="stylesheet" href="/style.css" type="text/css">
14+  <script src="/.js/rfont.js"></script>
15+</head>
16+<body>
17+  <div class="mcontain">
18+    <div class="lcontain">
19+      {{NAV}}
20+    </div>
21+    <div class="ccontain">
22+      {{CONTENT}}
23+    </div>
24+  </div>
25+  <div class="bcontain">
26+    <footer>{{FOOTER}}</footer>
27+  </div>
28+</body>
29+</html>