tangled
alpha
login
or
join now
eeep.ee
/
website3
1
fork
atom
my website
1
fork
atom
overview
issues
pulls
pipelines
initial commit. lotsa stuff sorry
eeep.ee
1 year ago
124ff3a3
+293
8 changed files
expand all
collapse all
unified
split
.gitignore
README.md
flake.lock
flake.nix
src
discord.html
index.html
platinum_fop_45_o.svg
style.css
+2
.gitignore
reviewed
···
1
1
+
result
2
2
+
src/fonts
+3
README.md
reviewed
···
1
1
+
# website3
2
2
+
3
3
+
not to be confused with: "web3"
+57
flake.lock
reviewed
···
1
1
+
{
2
2
+
"nodes": {
3
3
+
"flake-utils": {
4
4
+
"inputs": {
5
5
+
"systems": "systems"
6
6
+
},
7
7
+
"locked": {
8
8
+
"lastModified": 1731533236,
9
9
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
10
10
+
"owner": "numtide",
11
11
+
"repo": "flake-utils",
12
12
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
13
13
+
"type": "github"
14
14
+
},
15
15
+
"original": {
16
16
+
"owner": "numtide",
17
17
+
"repo": "flake-utils",
18
18
+
"type": "github"
19
19
+
}
20
20
+
},
21
21
+
"nixpkgs": {
22
22
+
"locked": {
23
23
+
"lastModified": 0,
24
24
+
"narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=",
25
25
+
"path": "/nix/store/cginla74w7h4gln9b3mva6l4nmj6gj30-source",
26
26
+
"type": "path"
27
27
+
},
28
28
+
"original": {
29
29
+
"id": "nixpkgs",
30
30
+
"type": "indirect"
31
31
+
}
32
32
+
},
33
33
+
"root": {
34
34
+
"inputs": {
35
35
+
"flake-utils": "flake-utils",
36
36
+
"nixpkgs": "nixpkgs"
37
37
+
}
38
38
+
},
39
39
+
"systems": {
40
40
+
"locked": {
41
41
+
"lastModified": 1681028828,
42
42
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
43
43
+
"owner": "nix-systems",
44
44
+
"repo": "default",
45
45
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
46
46
+
"type": "github"
47
47
+
},
48
48
+
"original": {
49
49
+
"owner": "nix-systems",
50
50
+
"repo": "default",
51
51
+
"type": "github"
52
52
+
}
53
53
+
}
54
54
+
},
55
55
+
"root": "root",
56
56
+
"version": 7
57
57
+
}
+102
flake.nix
reviewed
···
1
1
+
{
2
2
+
description = "chfour's website";
3
3
+
4
4
+
inputs.flake-utils.url = "github:numtide/flake-utils";
5
5
+
6
6
+
outputs = { self, nixpkgs, flake-utils }:
7
7
+
flake-utils.lib.eachSystem flake-utils.lib.allSystems
8
8
+
(system:
9
9
+
let
10
10
+
pkgs = nixpkgs.legacyPackages.${system};
11
11
+
selfPkgs = self.packages.${system};
12
12
+
13
13
+
subsetWoff2 = with pkgs; (src: { pname ? src.pname + "-subset", unicodes, extraArgs ? [] }: src.overrideAttrs (old: {
14
14
+
inherit pname;
15
15
+
16
16
+
passthru = {
17
17
+
unicodeRanges = unicodes;
18
18
+
};
19
19
+
20
20
+
nativeBuildInputs = (old.nativeBuildInputs or []) ++ (with python312Packages; [ fonttools brotli ]);
21
21
+
postInstall = (old.postInstall or "") + ''
22
22
+
for f in $out/share/fonts/woff2/*; do
23
23
+
${python312Packages.fonttools}/bin/fonttools subset "$f" \
24
24
+
--unicodes=${lib.escapeShellArg unicodes} \
25
25
+
${lib.escapeShellArgs extraArgs} \
26
26
+
--flavor=woff2 --output-file="$f"
27
27
+
done
28
28
+
'';
29
29
+
}));
30
30
+
in {
31
31
+
packages.inter-woff2 = pkgs.inter.overrideAttrs (old: {
32
32
+
pname = "inter-woff2";
33
33
+
installPhase = ''
34
34
+
runHook preInstall
35
35
+
mkdir -p $out/share/fonts/woff2
36
36
+
cp web/InterVariable*.woff2 $out/share/fonts/woff2
37
37
+
runHook postInstall
38
38
+
'';
39
39
+
});
40
40
+
41
41
+
# lib.strings.concatStringsSep ", " packages.x86_64-linux.inter-fast.unicodeRanges
42
42
+
# suboptimal the way it is atm. whatever
43
43
+
packages.inter-fast = subsetWoff2 selfPkgs.inter-woff2 {
44
44
+
pname = "inter-fast";
45
45
+
unicodes = [
46
46
+
# stolen from googel fonts and modified
47
47
+
"U+0000-00FF" "U+0131" "U+0152-0153" "U+02BB-02BC"
48
48
+
"U+02C6" "U+02DA" "U+02DC" "U+0304" "U+0308" "U+0329"
49
49
+
"U+2000-206F" "U+20AC" "U+2122" "U+2191" "U+2193"
50
50
+
"U+2212" "U+2215" "U+FEFF" "U+FFFD" "U+0394" "U+0398"
51
51
+
"U+0104" "U+0106" "U+0118" "U+0141" "U+0143" "U+00D3"
52
52
+
"U+015A" "U+0179" "U+017B" "U+0105" "U+0107" "U+0119"
53
53
+
"U+0142" "U+0144" "U+00F3" "U+015B" "U+017A" "U+017C"
54
54
+
];
55
55
+
extraArgs = [ "--layout-features+=cv10,cv02,zero" ];
56
56
+
};
57
57
+
58
58
+
packages.website-fonts = pkgs.stdenvNoCC.mkDerivation {
59
59
+
name = "website-fonts"; # i tried pname => attribute 'name' missing ??
60
60
+
61
61
+
phases = [ "installPhase" ]; # eh?
62
62
+
63
63
+
installPhase = ''
64
64
+
runHook preInstall
65
65
+
66
66
+
mkdir -p $out
67
67
+
68
68
+
# subset
69
69
+
for f in ${selfPkgs.inter-fast}/share/fonts/woff2/*.woff2; do
70
70
+
f_="''${f##*/}"
71
71
+
cp "$f" "$out/''${f_%*.woff2}.fast.woff2"
72
72
+
done
73
73
+
# full
74
74
+
for f in ${selfPkgs.inter-woff2}/share/fonts/woff2/*.woff2; do
75
75
+
cp "$f" "$out"
76
76
+
done
77
77
+
78
78
+
runHook postInstall
79
79
+
'';
80
80
+
};
81
81
+
82
82
+
packages.website = pkgs.stdenvNoCC.mkDerivation {
83
83
+
name = "chfour-website";
84
84
+
85
85
+
src = ./src;
86
86
+
87
87
+
phases = [ "installPhase" ];
88
88
+
89
89
+
installPhase = ''
90
90
+
runHook preInstall
91
91
+
92
92
+
mkdir -p $out
93
93
+
94
94
+
cp -r $src/* $out/
95
95
+
ln -sf ${selfPkgs.website-fonts} $out/fonts
96
96
+
97
97
+
runHook postInstall
98
98
+
'';
99
99
+
};
100
100
+
}
101
101
+
);
102
102
+
}
+29
src/discord.html
reviewed
···
1
1
+
<!DOCTYPE html>
2
2
+
<html lang="en">
3
3
+
<head>
4
4
+
<meta charset="UTF-8">
5
5
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
+
<title>discord contact - chfour</title>
7
7
+
<link rel="stylesheet" href="style.css">
8
8
+
<style>
9
9
+
:root, body { height: 100vh; width: 100vw; margin: 0; }
10
10
+
body {
11
11
+
display: flex;
12
12
+
text-align: center;
13
13
+
}
14
14
+
p {
15
15
+
margin: auto;
16
16
+
padding: 2em;
17
17
+
}
18
18
+
</style>
19
19
+
</head>
20
20
+
<body>
21
21
+
<p>
22
22
+
discord still hasn't implemented the advanced
23
23
+
feature of "sharing one's profile via a link",
24
24
+
so my discord username is:
25
25
+
<span style="display: block; font-size: 2em; font-weight: bolder;">ch4</span>
26
26
+
i have friend requests disabled, so contact me elsewhere first
27
27
+
</p>
28
28
+
</body>
29
29
+
</html>
+44
src/index.html
reviewed
···
1
1
+
<!DOCTYPE html>
2
2
+
<html lang="en">
3
3
+
<head>
4
4
+
<meta charset="UTF-8">
5
5
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
+
<title>website of chfour official website</title>
7
7
+
<link rel="stylesheet" href="style.css">
8
8
+
<style>
9
9
+
img { filter: drop-shadow(0 0 5px #ccc); }
10
10
+
@media (prefers-color-scheme: dark) {
11
11
+
img { filter: drop-shadow(0 0 5px #f2f2f277); }
12
12
+
}
13
13
+
:root {
14
14
+
display: flex;
15
15
+
align-items: flex-end;
16
16
+
min-height: 100vh;
17
17
+
}
18
18
+
</style>
19
19
+
</head>
20
20
+
<body>
21
21
+
<!--<header><h1>chfour</h1></header>-->
22
22
+
<article>
23
23
+
<img src="platinum_fop_45_o.svg" alt="" width="250" height="250" style="margin-block: 2em; max-width: 100%; height: auto;">
24
24
+
<p>from PCBs to webdev: jack of Too Many trades, master of none</p>
25
25
+
<p>(linux stuff, nix, c, python, shell, html+css+js...)</p>
26
26
+
<p>+ trains, very amateur photography, and radio</p>
27
27
+
<p>high ambitions, low energy, hoarder of assorted junk</p>
28
28
+
<p>exceptionally uncreative</p>
29
29
+
<p>gender outage (any pronouns)</p>
30
30
+
<p>furry, ΘΔ [platinum] fox</p>
31
31
+
<p>18 years old and counting</p>
32
32
+
<p>from Upper Silesia, Poland</p>
33
33
+
<ul class="inline-list">
34
34
+
<li style="display: block;">known as <b>chfour</b></li>
35
35
+
<li><a rel="me" href="https://wetdry.world/@chfour">fediverse</a></li>
36
36
+
<li><a href="https://github.com/chfour">github</a></li>
37
37
+
<li><a href="https://matrix.to/#/@chfour:eeep.ee">matrix</a></li>
38
38
+
<li><a href="discord.html">discord</a></li>
39
39
+
<li><a href="https://files.eeep.ee/">file dump</a></li>
40
40
+
<li><a href="https://github.com/chfour/website3">website source</a></li>
41
41
+
</ul>
42
42
+
</article>
43
43
+
</body>
44
44
+
</html>
+2
src/platinum_fop_45_o.svg
reviewed
···
1
1
+
<?xml version="1.0" encoding="UTF-8"?>
2
2
+
<svg version="1.1" viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><g transform="matrix(.62342 -.62342 .62342 .62342 -1.8241 20.604)"><path d="m13.431 9.802c0.658 2.638-8.673 10.489-11.244 4.098-1.491-3.703-2.793-11.466-1.313-11.835 1.48-0.368 11.9 5.098 12.557 7.737z" fill="#303030"/><path d="m11.437 10.355c0.96 1.538-1.831 4.561-3.368 5.522-1.538 0.961-2.899-0.552-4.414-4.414-0.662-1.689-1.666-6.27-1.103-6.622 0.562-0.351 7.924 3.976 8.885 5.514z" fill="#666"/><path d="m22.557 9.802c-0.657 2.639 8.673 10.489 11.245 4.098 1.49-3.703 2.792-11.466 1.312-11.835-1.48-0.368-11.899 5.098-12.557 7.737z" fill="#303030"/><path d="m24.552 10.355c-0.96 1.538 1.831 4.561 3.368 5.522s2.898-0.552 4.413-4.414c0.662-1.688 1.666-6.269 1.104-6.621-0.563-0.352-7.924 3.975-8.885 5.513z" fill="#666"/><g><path d="m32.347 26.912c0-0.454-0.188-1.091-0.407-1.687 0.585 0.028 1.519 0.191 2.77 0.817-8e-3 -0.536-0.118-0.984-0.273-1.393 0.041 0.02 0.075 0.034 0.116 0.055-1.103-3.31-3.309-5.517-3.309-5.517h2.206c-2.331-4.663-4.965-8.015-8.075-9.559-1.39-0.873-3.688-1.338-7.373-1.339h-3e-3c-3.695 0-5.996 0.468-7.385 1.346-3.104 1.547-5.734 4.896-8.061 9.552h2.207s-2.207 2.206-3.311 5.517c0.03-0.015 0.055-0.025 0.084-0.04-0.201 0.392-0.307 0.847-0.282 1.377 1.263-0.632 2.217-0.792 2.813-0.818-0.189 0.513-0.343 1.044-0.386 1.475-0.123 0.371-0.191 0.812-0.135 1.343 3.207-1.457 4.707-1.249 6.457-0.374 1.213 3.623 4.206 6.333 8.001 6.333 3.793 0 6.746-2.794 7.958-6.416 1.458-1.25 3.708-0.875 6.416 0.416 0.066-0.414 0.036-0.773-0.036-1.093z" fill="#ccc"/><path d="m19.993 17.454c0 1.8541 1.0635 4.5587 4.6276 3.9593 2.407-0.781 8.681 0.454 9.9295 3.291-1.1055-3.311-3.3125-5.517-3.3125-5.517h2.207c-2.327-4.656-4.957-8.005-8.061-9.552-0.63799-0.37209-1.3562-0.66242-2.2077-0.87064-2.1724 2.3533-3.3111 5.2072-3.1829 8.6894zm-3.9888-1e-6c0 1.8541-1.0635 4.5587-4.6276 3.9593-2.407-0.781-8.681 0.454-9.9295 3.291 1.1055-3.311 3.3125-5.517 3.3125-5.517h-2.207c2.327-4.656 4.957-8.005 8.061-9.552 0.63799-0.37209 1.3562-0.66242 2.2077-0.87064 2.1724 2.3533 3.3111 5.2072 3.1829 8.6894z" fill="#999" stroke-width="8"/><path d="m31.243 23.601c6e-3 0 1.108 3e-3 3.309 1.103-1.249-2.839-7.525-4.07-9.931-3.291-1.171 1.954-1.281 5.003-3.383 6.622-1.741 1.431-4.713 1.458-6.479 0-2.345-1.924-2.559-5.813-3.382-6.622-2.407-0.781-8.681 0.454-9.931 3.291 2.201-1.101 3.304-1.103 3.309-1.103 0 1e-3 -1.103 2.208-1.103 3.311l1e-3 -1e-3v1e-3c2.398-1.573 5.116-2.271 7.429-0.452 1.666 7.921 12.293 7.545 13.833 0 2.314-1.818 5.03-1.122 7.429 0.452v-1e-3l1e-3 1e-3c2e-3 -1.103-1.101-3.311-1.102-3.311z" fill="#f2f2f2"/><path d="m11 17s0-1.5 1.5-1.5 1.5 1.5 1.5 1.5v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5zm11 0s0-1.5 1.5-1.5 1.5 1.5 1.5 1.5v1.5s0 1.5-1.5 1.5-1.5-1.5-1.5-1.5zm-7.061 10.808c-1.021 0.208 2.041 3.968 3.062 3.968 1.02 0 4.082-3.76 3.062-3.968-1.021-0.208-5.103-0.208-6.124 0z" fill="#272b2b"/></g></g><metadata><rdf:RDF><cc:Work rdf:about=""><dc:creator><cc:Agent><dc:title>chfour</dc:title></cc:Agent></dc:creator><cc:license rdf:resource="http://creativecommons.org/licenses/by/4.0/"/><dc:source>https://github.com/jdecked/twemoji/blob/main/assets/svg/1f98a.svg</dc:source></cc:Work><cc:License rdf:about="http://creativecommons.org/licenses/by/4.0/"><cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/><cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/><cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/><cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/><cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/></cc:License></rdf:RDF></metadata></svg>
+54
src/style.css
reviewed
···
1
1
+
@font-face {
2
2
+
font-family: 'Inter';
3
3
+
font-style: normal;
4
4
+
font-weight: 100 900;
5
5
+
font-display: block;
6
6
+
src: url(fonts/InterVariable.fast.woff2) format('woff2');
7
7
+
font-feature-settings: "cv10", "cv02", "zero";
8
8
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0394, U+0398, U+0104, U+0106, U+0118, U+0141, U+0143, U+00D3, U+015A, U+0179, U+017B, U+0105, U+0107, U+0119, U+0142, U+0144, U+00F3, U+015B, U+017A, U+017C;
9
9
+
}
10
10
+
@font-face {
11
11
+
font-family: 'Inter';
12
12
+
font-style: italic;
13
13
+
font-weight: 100 900;
14
14
+
font-display: block;
15
15
+
src: url(fonts/InterVariable-Italic.fast.woff2) format('woff2');
16
16
+
font-feature-settings: "cv10", "cv02", "zero";
17
17
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0394, U+0398, U+0104, U+0106, U+0118, U+0141, U+0143, U+00D3, U+015A, U+0179, U+017B, U+0105, U+0107, U+0119, U+0142, U+0144, U+00F3, U+015B, U+017A, U+017C;
18
18
+
}
19
19
+
/* todo: non-fast variants lol */
20
20
+
21
21
+
body {
22
22
+
background-color: #f2f2f2;
23
23
+
color: black;
24
24
+
font-family: 'Inter', sans-serif;
25
25
+
font-optical-sizing: auto;
26
26
+
}
27
27
+
28
28
+
article {
29
29
+
/* max-width: 30em; */
30
30
+
margin: 3rem;
31
31
+
}
32
32
+
33
33
+
a { color: #7d29e2; }
34
34
+
a:visited { color: #a800ad; }
35
35
+
36
36
+
@media (prefers-color-scheme: dark) {
37
37
+
body {
38
38
+
background-color: #1a1a1a;
39
39
+
color: #f2f2f2;
40
40
+
}
41
41
+
a { color: #aaf; }
42
42
+
a:visited { color: #fbf; }
43
43
+
}
44
44
+
45
45
+
img { display: block; }
46
46
+
47
47
+
.inline-list {
48
48
+
list-style-type: none;
49
49
+
padding-left: 0;
50
50
+
}
51
51
+
.inline-list > * {
52
52
+
display: inline;
53
53
+
white-space: nowrap;
54
54
+
}