Last active 1750680066 Unlisted

HTML stránka rozcestníku

jaandrle's Avatar jaandrle revised this gist 1750680066. Go to revision

1 file changed, 5 insertions

index.html

@@ -54,6 +54,11 @@
54 54 – Synchronizace souborů
55 55 [stránky projektu <a href="https://www.seafile.com/en/about/">Seafile</a>]
56 56 </li>
57 + <li>
58 + <a href="https://karadav.jaandrle.cz/" title="Moje instance">karadav.jaandrle.cz</a>
59 + – Synchronizace souborů
60 + [stránky projektu <a href="https://github.com/kd2org/karadav/">KaraDAV</a>]
61 + </li>
57 62 <li>
58 63 <a href="https://nocodb.jaandrle.cz/" title="Moje instance">nocodb.jaandrle.cz</a>
59 64 – „Nocode” databáze alá Airtable

jaandrle's Avatar jaandrle revised this gist 1750679889. Go to revision

1 file changed, 16 insertions, 16 deletions

index.html

@@ -49,12 +49,6 @@
49 49
50 50 <p>Toto je místo pro online nástroje. Primárně pro mé potřeby, případně rodinu/komunitu:</p>
51 51 <ul>
52 - <li>
53 - <a href="http://kucharka.jaandrle.cz/" title="Moje instance">kucharka.jaandrle.cz</a>,
54 - <a href="http://tandoor.jaandrle.cz/" title="Moje instance">tandoor.jaandrle.cz</a>
55 - – správce receptů
56 - [stránky projektu <a href="https://docs.tandoor.dev/">Tandoor Recipes</a>]
57 - </li>
58 52 <li>
59 53 <a href="https://seafile.jaandrle.cz/" title="Moje instance">seafile.jaandrle.cz</a>
60 54 – Synchronizace souborů
@@ -89,21 +83,11 @@
89 83 <a href="https://searxng.jaandrle.cz/" title="Moje instance">searxng.jaandrle.cz</a>
90 84 – Metavyhledávač webu (pomalejší, ale dbá na soukromí + vyhledávání na vícero službách najednou)
91 85 [stránky projektu <a href="https://github.com/searxng/searxng">SearXNG</a>]
92 - <li>
93 - <a href="https://filedrop.jaandrle.cz/" title="Moje instance">filedrop.jaandrle.cz</a>
94 - – sdílení souborů přes web sockets
95 - [stránky projektu <a href="https://github.com/Xtrendence/FileDrop">FileDrop</a>]
96 - </li>
97 86 <li>
98 87 <a href="https://privatebin.arch-linux.cz/" title="Instance na Arch Linux">privatebin.arch-linux.cz</a>
99 88 – sdílení souborů a poznámek přes internet
100 89 [toto je instance na Arch Linux, viz <a href="https://wiki.arch-linux.cz/books/privatebin/page/privatebin">Co je PrivateBin</a>]
101 90 </li>
102 - <li>
103 - <a href="https://pasteburn.jaandrle.cz/" title="Moje instance">pasteburn.jaandrle.cz</a>
104 - – sdílení souborů a poznámek přes internet
105 - [stránky projektu <a href="https://github.com/pasteburn/pasteburn">Pasteburn</a>]
106 - </li>
107 91 <li>
108 92 <a href="https://linkding.jaandrle.cz/" title="Moje instance LinkDing">linkding.jaandrle.cz</a>
109 93 – správce záložek
@@ -124,6 +108,22 @@
124 108 – zkracovač adres
125 109 [stránky projektu <a href="https://github.com/thedevs-network/kutt">Kutt.it</a>]
126 110 </del></li>
111 + <li><del>
112 + <a href="http://kucharka.jaandrle.cz/" title="Moje instance">kucharka.jaandrle.cz</a>,
113 + <a href="http://tandoor.jaandrle.cz/" title="Moje instance">tandoor.jaandrle.cz</a>
114 + – správce receptů
115 + [stránky projektu <a href="https://docs.tandoor.dev/">Tandoor Recipes</a>]
116 + </del></li>
117 + <li><del>
118 + <a href="https://filedrop.jaandrle.cz/" title="Moje instance">filedrop.jaandrle.cz</a>
119 + – sdílení souborů přes web sockets
120 + [stránky projektu <a href="https://github.com/Xtrendence/FileDrop">FileDrop</a>]
121 + </del></li>
122 + <li><del>
123 + <a href="https://pasteburn.jaandrle.cz/" title="Moje instance">pasteburn.jaandrle.cz</a>
124 + – sdílení souborů a poznámek přes internet
125 + [stránky projektu <a href="https://github.com/pasteburn/pasteburn">Pasteburn</a>]
126 + </del></li>
127 127 <li><del>
128 128 <a href="http://stirling-pdf.jaandrle.cz/" title="Moje instance">stirling-pdf.jaandrle.cz</a>
129 129 – utility pro práci s PDF

jaandrle's Avatar Jan Andrle revised this gist 1721733430. Go to revision

1 file changed, 49 insertions, 1 deletion

index.html

@@ -16,6 +16,32 @@
16 16 li + li {
17 17 margin-top: .75em;
18 18 }
19 + a{
20 + --color: oklch(40.44% 0.227 255.39);
21 + @media(prefers-color-scheme: dark){
22 + --color: oklch(79.45% 0.105 255.39);
23 + }
24 + color: var(--color);
25 + &::before { font-weight: bold; }
26 +
27 + &:link{ color: var(--color); }
28 + &:visited{ color: oklch(from var(--color) calc(l - 0.1) c h); }
29 + &:hover{ color: oklch(from var(--color) l calc(c + .25) h); }
30 + }
31 + [data-is_live=true]{
32 + --color: oklch(50.69% 0.167 149.78);
33 + @media(prefers-color-scheme: dark){
34 + --color: oklch(90.69% 0.167 149.78);
35 + }
36 + &::before { content: "✓ " / ""; }
37 + }
38 + [data-is_live=false]{
39 + --color: oklch(50.37% 0.125 356.965);
40 + @media(prefers-color-scheme: dark){
41 + --color: oklch(80.37% 0.125 356.965);
42 + }
43 + &::before { content: "✗ " / ""; }
44 + }
19 45 </style>
20 46 </head>
21 47 <body>
@@ -110,14 +136,36 @@
110 136 </del></li>
111 137 </ul>
112 138
139 +
113 140 <p>Související:</p>
114 141 <ul>
142 + <li><a id="status" href="https://jaandrle-vpsup.web.val.run/">Stav služeb</a></li>
115 143 <li> <a href="https://jaandrle.github.io/">Můj blog</a> </li>
116 - <li> <a href="https://fosstodon.org/@jaandrle">Můj Mastodon účet</a> (<code>@jaandrle@fosstodon.org</code>) </li>
144 + <li> <a href="https://fosstodon.org/@jaandrle">Můj Mastodon účet</a> (<code>@jaandrle@fosstodon.org</code>)</li>
117 145 <li> <a href="https://nolog.cz/services/">nolog služby</a> </li>
118 146 <li> <a href="https://wiki.arch-linux.cz/shelves/aplikace-komunity-arch-linux-cz">Aplikace komunity Arch Linux CZ</a> </li>
119 147 </ul>
120 148
121 149 <p><em><a href="http://nginx.com/">nginx/1.18.0 (Ubuntu)</a></em></p>
150 +
151 +
152 + <script type="module">
153 + const { href, parentElement }= document.getElementById('status');
154 + /** * @type {[string, { ok: boolean, status: number }][]} */
155 + const services= await fetch(href).then(r => r.json()).then(Object.entries);
156 + const links= Array.from(document.querySelectorAll('a'));
157 +
158 + for(const [ url_service, { ok, status } ] of services) {
159 + for(const link of links) {
160 + if(url(link.href) !== url(url_service)) continue;
161 + links.splice(links.indexOf(link), 1);
162 + Object.assign(link.dataset, { is_live: ok, status });
163 + link.title+= ` (${status})`;
164 + }
165 + }
166 + parentElement.parentElement.append(parentElement);
167 +
168 + function url(url_service) { return (new URL(url_service)).href; }
169 + </script>
122 170 </body>
123 171 </html>

jaandrle's Avatar jaandrle revised this gist 1721394091. Go to revision

1 file changed, 11 deletions

index.html

@@ -119,16 +119,5 @@
119 119 </ul>
120 120
121 121 <p><em><a href="http://nginx.com/">nginx/1.18.0 (Ubuntu)</a></em></p>
122 - <script type="module">
123 - for(const link of Array.from(document.getElementsByTagName('a'))){
124 - if(!link.href.includes("jaandrle.cz")) continue;
125 - const { parentNode }= link;
126 - if(parentNode instanceof HTMLModElement) continue;
127 - if(parentNode.dataset.status) continue; // one <li> per service (with multiple links/aliases)
128 - const response= await fetch(link.href, { mode: "cors", redirect: "follow", methos: "HEAD" })
129 - .catch(e=> e);
130 - console.log(link, response);
131 - }
132 - </script>
133 122 </body>
134 123 </html>

jaandrle's Avatar Jan Andrle revised this gist 1721390077. Go to revision

1 file changed, 1 insertion, 1 deletion

index.html

@@ -125,7 +125,7 @@
125 125 const { parentNode }= link;
126 126 if(parentNode instanceof HTMLModElement) continue;
127 127 if(parentNode.dataset.status) continue; // one <li> per service (with multiple links/aliases)
128 - const response= await fetch(link.href, { mode: "no-cors", headers: { "Accept": "text/html", "Access-Control-Allow-Origin": "*" } })
128 + const response= await fetch(link.href, { mode: "cors", redirect: "follow", methos: "HEAD" })
129 129 .catch(e=> e);
130 130 console.log(link, response);
131 131 }

jaandrle's Avatar Jan Andrle revised this gist 1721389596. Go to revision

1 file changed, 1 insertion, 1 deletion

index.html

@@ -126,7 +126,7 @@
126 126 if(parentNode instanceof HTMLModElement) continue;
127 127 if(parentNode.dataset.status) continue; // one <li> per service (with multiple links/aliases)
128 128 const response= await fetch(link.href, { mode: "no-cors", headers: { "Accept": "text/html", "Access-Control-Allow-Origin": "*" } })
129 - .then(e=> e);
129 + .catch(e=> e);
130 130 console.log(link, response);
131 131 }
132 132 </script>

jaandrle's Avatar Jan Andrle revised this gist 1721389306. Go to revision

1 file changed, 2 insertions, 1 deletion

index.html

@@ -125,7 +125,8 @@
125 125 const { parentNode }= link;
126 126 if(parentNode instanceof HTMLModElement) continue;
127 127 if(parentNode.dataset.status) continue; // one <li> per service (with multiple links/aliases)
128 - const response= await fetch(link.href, { mode: "no-cors", headers: { "Accept": "text/html", "Access-Control-Allow-Origin": "*" } });
128 + const response= await fetch(link.href, { mode: "no-cors", headers: { "Accept": "text/html", "Access-Control-Allow-Origin": "*" } })
129 + .then(e=> e);
129 130 console.log(link, response);
130 131 }
131 132 </script>

jaandrle's Avatar Jan Andrle revised this gist 1721389239. Go to revision

1 file changed, 1 insertion, 1 deletion

index.html

@@ -125,7 +125,7 @@
125 125 const { parentNode }= link;
126 126 if(parentNode instanceof HTMLModElement) continue;
127 127 if(parentNode.dataset.status) continue; // one <li> per service (with multiple links/aliases)
128 - const response= await fetch(link.href, { method: "HEAD" }).catch(e=> e);
128 + const response= await fetch(link.href, { mode: "no-cors", headers: { "Accept": "text/html", "Access-Control-Allow-Origin": "*" } });
129 129 console.log(link, response);
130 130 }
131 131 </script>

jaandrle's Avatar Jan Andrle revised this gist 1721388286. Go to revision

1 file changed, 1 insertion, 1 deletion

index.html

@@ -125,7 +125,7 @@
125 125 const { parentNode }= link;
126 126 if(parentNode instanceof HTMLModElement) continue;
127 127 if(parentNode.dataset.status) continue; // one <li> per service (with multiple links/aliases)
128 - const response= await fetch(link.href, { method: "HEAD" });
128 + const response= await fetch(link.href, { method: "HEAD" }).catch(e=> e);
129 129 console.log(link, response);
130 130 }
131 131 </script>

jaandrle's Avatar Jan Andrle revised this gist 1721388147. Go to revision

1 file changed, 15 insertions, 5 deletions

index.html

@@ -112,12 +112,22 @@
112 112
113 113 <p>Související:</p>
114 114 <ul>
115 - <li> <a href="https://jaandrle.github.io/">Můj blog</a> </li>
116 - <li> <a href="https://fosstodon.org/@jaandrle">Můj Mastodon účet</a> (<code>@jaandrle@fosstodon.org</code>) </li>
117 - <li> <a href="https://nolog.cz/services/">nolog služby</a> </li>
118 - <li> <a href="https://wiki.arch-linux.cz/shelves/aplikace-komunity-arch-linux-cz">Aplikace komunity Arch Linux CZ</a> </li>
115 + <li> <a href="https://jaandrle.github.io/">Můj blog</a> </li>
116 + <li> <a href="https://fosstodon.org/@jaandrle">Můj Mastodon účet</a> (<code>@jaandrle@fosstodon.org</code>) </li>
117 + <li> <a href="https://nolog.cz/services/">nolog služby</a> </li>
118 + <li> <a href="https://wiki.arch-linux.cz/shelves/aplikace-komunity-arch-linux-cz">Aplikace komunity Arch Linux CZ</a> </li>
119 119 </ul>
120 120
121 121 <p><em><a href="http://nginx.com/">nginx/1.18.0 (Ubuntu)</a></em></p>
122 + <script type="module">
123 + for(const link of Array.from(document.getElementsByTagName('a'))){
124 + if(!link.href.includes("jaandrle.cz")) continue;
125 + const { parentNode }= link;
126 + if(parentNode instanceof HTMLModElement) continue;
127 + if(parentNode.dataset.status) continue; // one <li> per service (with multiple links/aliases)
128 + const response= await fetch(link.href, { method: "HEAD" });
129 + console.log(link, response);
130 + }
131 + </script>
122 132 </body>
123 - </html>
133 + </html>
Newer Older