jaandrle revised this gist . 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 revised this gist . 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 |
Jan Andrle revised this gist . 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 revised this gist . 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> |
Jan Andrle revised this gist . 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 | } |
Jan Andrle revised this gist . 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> |
Jan Andrle revised this gist . 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> |
Jan Andrle revised this gist . 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> |
Jan Andrle revised this gist . 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> |
Jan Andrle revised this gist . 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> |