commit 3355a07
merc
·
2026-07-12 20:08:05 +0000 UTC
parent 3355a07
init
39 files changed,
+293,
-0
A
_sync.sh
+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
A
_sync.sh
+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
1@@ -0,0 +1 @@
2+[](avg_siberia.jpg)
+0,
-0
+1,
-0
1@@ -0,0 +1 @@
2+[](buttery.jpg)
+0,
-0
+1,
-0
1@@ -0,0 +1 @@
2+[](hrusch.jpg)
+0,
-0
+1,
-0
1@@ -0,0 +1 @@
2+[](mc_road.jpg)
+0,
-0
+1,
-0
1@@ -0,0 +1 @@
2+[](metro.jpg)
+1,
-0
1@@ -0,0 +1 @@
2+[](powerline.jpg)
+0,
-0
+1,
-0
1@@ -0,0 +1 @@
2+[](remnants.jpg)
+0,
-0
+1,
-0
1@@ -0,0 +1 @@
2+[](sciezka.jpg)
+0,
-0
+1,
-0
1@@ -0,0 +1 @@
2+[](serving.jpg)
1@@ -0,0 +1 @@
2+[](triumph_palace.jpg)
+1,
-0
1@@ -0,0 +1 @@
2+[](bashthatshit.png)
+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>