static, scriptless homepage for my pds (pds.jeanmachine.dev)
0
fork

Configure Feed

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

initial commit

Eric Hamilton 4c4726a1

+296
+36
assets/logo.svg
··· 1 + <?xml version="1.0" standalone="no"?> 2 + <svg xmlns="http://www.w3.org/2000/svg" 3 + width="512" height="512" 4 + viewBox="0 0 512.000000 512.000000" 5 + preserveAspectRatio="xMidYMid meet"> 6 + <g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" fill="#D09149" stroke="#303135" stroke-width="32" stroke-linejoin="round" paint-order="stroke fill"> 7 + <path d="M4875 4487 c-91 -60 -438 -296 -850 -577 -364 -248 -485 -330 -491 8 + -330 -3 0 -45 36 -92 79 -256 234 -532 373 -861 433 -164 30 -418 30 -586 -2 9 + -151 -28 -299 -76 -441 -146 -102 -50 -235 -131 -293 -179 -154 -127 -216 10 + -189 -205 -206 3 -5 121 -8 262 -6 l257 2 74 42 c112 65 248 114 404 148 80 11 + 17 233 23 339 15 235 -19 432 -86 624 -212 94 -62 204 -155 204 -173 0 -8 -21 12 + -28 -47 -45 l-48 -30 -420 0 -420 0 -60 -74 c-552 -685 -775 -965 -775 -975 0 13 + -11 124 -168 592 -750 43 -53 95 -118 117 -146 21 -27 48 -61 60 -75 12 -14 14 + 31 -35 42 -47 10 -13 23 -23 27 -23 5 0 78 86 161 191 84 105 159 198 166 207 15 + 135 165 395 495 395 502 0 6 -138 10 -365 10 -211 0 -365 4 -365 9 0 7 50 73 16 + 79 104 5 4 175 8 378 7 423 -1 374 -12 470 106 149 184 313 392 313 398 0 3 17 + -121 6 -269 6 l-270 0 -37 -47 c-21 -27 -45 -54 -53 -60 -18 -15 -201 -18 18 + -201 -4 0 6 17 30 38 54 20 25 62 76 92 115 l55 71 380 1 380 1 78 97 c43 53 19 + 127 159 186 234 60 75 114 143 120 150 32 38 203 251 243 303 25 33 54 69 65 20 + 80 18 21 63 76 98 124 11 15 39 50 62 77 22 27 64 78 92 114 28 36 62 79 76 21 + 95 240 298 291 365 278 365 -5 0 -31 -15 -58 -33z"/> 22 + <path d="M989 3285 c-104 -38 -218 -147 -278 -265 -43 -86 -75 -175 -67 -188 23 + 3 -5 36 -1 73 9 80 22 171 24 216 5 43 -18 65 -41 186 -194 57 -73 107 -132 24 + 112 -132 4 0 28 26 52 58 25 31 53 67 63 79 34 40 152 186 286 353 72 91 151 25 + 189 175 218 24 29 43 57 43 62 0 16 -817 12 -861 -5z"/> 26 + <path d="M330 3197 c0 -1 -11 -34 -25 -72 -115 -315 -145 -736 -79 -1080 39 27 + -198 90 -350 180 -533 139 -283 335 -525 586 -725 25 -20 52 -37 60 -37 13 1 28 + 132 143 143 171 4 11 -26 42 -97 101 -127 107 -244 233 -329 358 -176 255 29 + -277 527 -320 855 -19 146 -6 424 26 570 44 198 49 170 -46 289 -71 88 -99 30 + 118 -99 103z"/> 31 + <path d="M626 2242 c-9 -15 23 -179 60 -298 79 -261 215 -486 414 -684 69 -69 32 + 146 -140 171 -157 l46 -32 89 111 c49 62 99 127 111 144 l23 33 -64 50 c-35 33 + 28 -99 88 -141 133 -168 179 -265 355 -325 593 l-27 110 -176 3 c-97 1 -178 34 + -2 -181 -6z"/> 35 + </g> 36 + </svg>
favicon.ico

This is a binary file and will not be displayed.

+93
fonts/maplemono/LICENSE.txt
··· 1 + Copyright 2022 The Maple Mono Project Authors (https://github.com/subframe7536/maple-font) 2 + 3 + This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 + This license is copied below, and is also available with a FAQ at: 5 + https://openfontlicense.org 6 + 7 + 8 + ----------------------------------------------------------- 9 + SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 + ----------------------------------------------------------- 11 + 12 + PREAMBLE 13 + The goals of the Open Font License (OFL) are to stimulate worldwide 14 + development of collaborative font projects, to support the font creation 15 + efforts of academic and linguistic communities, and to provide a free and 16 + open framework in which fonts may be shared and improved in partnership 17 + with others. 18 + 19 + The OFL allows the licensed fonts to be used, studied, modified and 20 + redistributed freely as long as they are not sold by themselves. The 21 + fonts, including any derivative works, can be bundled, embedded, 22 + redistributed and/or sold with any software provided that any reserved 23 + names are not used by derivative works. The fonts and derivatives, 24 + however, cannot be released under any other type of license. The 25 + requirement for fonts to remain under this license does not apply 26 + to any document created using the fonts or their derivatives. 27 + 28 + DEFINITIONS 29 + "Font Software" refers to the set of files released by the Copyright 30 + Holder(s) under this license and clearly marked as such. This may 31 + include source files, build scripts and documentation. 32 + 33 + "Reserved Font Name" refers to any names specified as such after the 34 + copyright statement(s). 35 + 36 + "Original Version" refers to the collection of Font Software components as 37 + distributed by the Copyright Holder(s). 38 + 39 + "Modified Version" refers to any derivative made by adding to, deleting, 40 + or substituting -- in part or in whole -- any of the components of the 41 + Original Version, by changing formats or by porting the Font Software to a 42 + new environment. 43 + 44 + "Author" refers to any designer, engineer, programmer, technical 45 + writer or other person who contributed to the Font Software. 46 + 47 + PERMISSION & CONDITIONS 48 + Permission is hereby granted, free of charge, to any person obtaining 49 + a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 + redistribute, and sell modified and unmodified copies of the Font 51 + Software, subject to the following conditions: 52 + 53 + 1) Neither the Font Software nor any of its individual components, 54 + in Original or Modified Versions, may be sold by itself. 55 + 56 + 2) Original or Modified Versions of the Font Software may be bundled, 57 + redistributed and/or sold with any software, provided that each copy 58 + contains the above copyright notice and this license. These can be 59 + included either as stand-alone text files, human-readable headers or 60 + in the appropriate machine-readable metadata fields within text or 61 + binary files as long as those fields can be easily viewed by the user. 62 + 63 + 3) No Modified Version of the Font Software may use the Reserved Font 64 + Name(s) unless explicit written permission is granted by the corresponding 65 + Copyright Holder. This restriction only applies to the primary font name as 66 + presented to the users. 67 + 68 + 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 + Software shall not be used to promote, endorse or advertise any 70 + Modified Version, except to acknowledge the contribution(s) of the 71 + Copyright Holder(s) and the Author(s) or with their explicit written 72 + permission. 73 + 74 + 5) The Font Software, modified or unmodified, in part or in whole, 75 + must be distributed entirely under this license, and must not be 76 + distributed under any other license. The requirement for fonts to 77 + remain under this license does not apply to any document created 78 + using the Font Software. 79 + 80 + TERMINATION 81 + This license becomes null and void if any of the above conditions are 82 + not met. 83 + 84 + DISCLAIMER 85 + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 + OTHER DEALINGS IN THE FONT SOFTWARE.
fonts/maplemono/MapleMono-Italic.ttf

This is a binary file and will not be displayed.

fonts/maplemono/MapleMono.ttf

This is a binary file and will not be displayed.

+102
index.css
··· 1 + @font-face { 2 + font-family: "Maple Mono"; 3 + src: url("fonts/maplemono/MapleMono.ttf") format("truetype"); 4 + font-weight: normal; 5 + font-style: normal; 6 + } 7 + 8 + @font-face { 9 + font-family: "Maple Mono"; 10 + src: url("fonts/maplemono/MapleMono-Italic.ttf") format("truetype"); 11 + font-weight: normal; 12 + font-style: italic; 13 + } 14 + 15 + :root { 16 + --bg: #e6e9ef; 17 + --text: #4c4f69; 18 + --subtext: #5c5f77; 19 + --overlay: #8c8fa1; 20 + --accent: #d20f39; 21 + } 22 + 23 + html, 24 + body { 25 + height: 100%; 26 + } 27 + 28 + body { 29 + background: var(--bg); 30 + color: var(--text); 31 + font-family: "Maple Mono", monospace; 32 + font-size: 14px; 33 + margin: 5px; 34 + } 35 + 36 + header { 37 + display: flex; 38 + align-items: center; 39 + gap: 1rem; 40 + border-bottom: 1px solid var(--overlay); 41 + } 42 + 43 + header img { 44 + max-height: 125px; /* 8 lines × 13px × 1.2 line-height */ 45 + width: auto; 46 + flex-shrink: 0; 47 + object-fit: contain; 48 + } 49 + 50 + .ascii { 51 + color: var(--accent); 52 + font-size: 13px; 53 + font-style: initial; 54 + margin: 0; 55 + } 56 + 57 + .stats { 58 + font-size: 12px; 59 + color: var(--subtext); 60 + margin: 0.5rem 0 1rem; 61 + } 62 + 63 + .stats-value { 64 + color: var(--accent); 65 + } 66 + 67 + .stats-sep { 68 + margin: 0 0.5ch; 69 + } 70 + 71 + .body-text { 72 + color: var(--text); 73 + opacity: 0.9; 74 + } 75 + 76 + .links { 77 + margin-top: 1.2rem; 78 + } 79 + 80 + .link-row { 81 + display: flex; 82 + gap: 0; 83 + line-height: 1.8; 84 + } 85 + 86 + .link-label { 87 + color: var(--subtext); 88 + min-width: 11ch; 89 + text-align: right; 90 + padding-right: 1ch; 91 + flex-shrink: 0; 92 + } 93 + 94 + .link-row a { 95 + color: var(--accent); 96 + text-decoration: none; 97 + transition: text-shadow 0.2s; 98 + } 99 + 100 + .link-row a:hover { 101 + text-decoration: underline; 102 + }
+65
index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <link rel="stylesheet" href="index.css" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <link rel="icon" href="favicon.ico" /> 8 + <title>Jean's PDS</title> 9 + </head> 10 + <body> 11 + <header> 12 + <img src="assets/logo.svg" alt="logo" /> 13 + <pre class="ascii"> 14 + _ _ _ _ _ 15 + | | (_) | | (_) | | 16 + _ __ __| |___ _ ___ __ _ _ __ _ __ ___ __ _ ___| |__ _ _ __ ___ __| | _____ __ 17 + | '_ \ / _` / __| | |/ _ \/ _` | '_ \| '_ ` _ \ / _` |/ __| '_ \| | '_ \ / _ \ / _` |/ _ \ \ / / 18 + | |_) | (_| \__ \_| | __/ (_| | | | | | | | | | (_| | (__| | | | | | | | __/| (_| | __/\ V / 19 + | .__/ \__,_|___(_) |\___|\__,_|_| |_|_| |_| |_|\__,_|\___|_| |_|_|_| |_|\___(_)__,_|\___| \_/ 20 + | | _/ | 21 + |_| |__/ 22 + </pre 23 + > 24 + </header> 25 + 26 + <div class="body-text"> 27 + <p style="font-style: italic"> 28 + This is an AT Protocol Personal Data Server (aka, an atproto 29 + PDS) 30 + </p> 31 + <p> 32 + Most API routes are under 33 + <span style="color: var(--accent)">/xrpc/</span> 34 + </p> 35 + </div> 36 + 37 + <div class="links"> 38 + <div class="link-row"> 39 + <span class="link-label">Code:</span> 40 + <a href="https://github.com/bluesky-social/atproto" 41 + >https://github.com/bluesky-social/atproto</a 42 + > 43 + </div> 44 + <div class="link-row"> 45 + <span class="link-label">Self-Host:</span> 46 + <a href="https://github.com/bluesky-social/pds" 47 + >https://github.com/bluesky-social/pds</a 48 + > 49 + </div> 50 + <div class="link-row"> 51 + <span class="link-label">Protocol:</span> 52 + <a href="https://atproto.com">https://atproto.com</a> 53 + </div> 54 + </div> 55 + 56 + <script> 57 + window.pdsStats.then(({ repos, records }) => { 58 + document.getElementById("stat-repos").textContent = 59 + repos.toLocaleString(); 60 + document.getElementById("stat-records").textContent = 61 + records.toLocaleString(); 62 + }); 63 + </script> 64 + </body> 65 + </html>